# Get object params value

**URL:** <https://discourse.nodered.org/t/get-object-params-value/62356>\
**Category:** General\
**Tags:** http-request, function-node\
**Created:** [8 May 2022 07:33 UTC](https://discourse.nodered.org/t/get-object-params-value/62356 "2022-05-08T07:33:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 07:33 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/1 "2022-05-08T07:33:08Z")

</div>

Hi! Please help!  
How to get any object params value?  
 ![params](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/c/5c16efe8b4b0681992baa252117451abf42a10f0.png)

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 07:36 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/2 "2022-05-08T07:36:11Z")

</div>

You could try...  
`let myValue = msg.payload.params.thermostatTemperatureSetpoint;`

That should put 27 in myValue

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 07:39 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/3 "2022-05-08T07:39:56Z")

</div>

Only integer

```auto
let myValue = msg.payload.params.thermostatTemperatureSetPoint;
msg.payload = Number(msg.payload)-10; 
if (msg.payload = myValue) 
{msg.payload = "on";}
else {
  {msg.payload = "off"}
}
return msg;

```

"Invalid JSONata expression: Argument 1 of function "substring" does not match function signature"

This is google assistant response: thermostatTemperatureSetpoint: 16

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 07:42 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/4 "2022-05-08T07:42:55Z")

</div>

Sorry - I may have got the path slightly wrong.

If you click the appropriate line in the debug node, you should be able to copy the path (that you can then use in your function node).

Here's an example.  
 ![Screen Shot 05-08-22 at 08.40 AM](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/b/9bef0a13a523636700e6f6faa6123216e66d7100.png)

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 07:44 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/5 "2022-05-08T07:44:36Z")

</div>

Patch is OK:  
payload.params.thermostatTemperatureSetpoint

Get array value ok: msg.payload = msg.payload[0][0].imie;  
Get object params value not working

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 07:49 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/6 "2022-05-08T07:49:38Z")

</div>

Well I suspect something else is incorrect in your coding in the function node.

You might want to take a look at line-2 as I'm not sure what `msg.payload` would return.

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 07:56 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/7 "2022-05-08T07:56:01Z")

</div>

1, get dht11 temp: `[Preformatted text](http://192.168.5.240/cm?cmnd=cmnd/temp/GlobalTemp)`  
2, Get value: `$substring(payload,14,4)`  
3, in function:

```auto
let myValue = msg.payload.params.thermostatTemperatureSetPoint;
msg.payload = Number(msg.payload)-10; 
if (msg.payload = myValue) 
{msg.payload = "on";}
else {
  {msg.payload = "off"}
}
return msg;

```

4, google home node connect to function, (voice control)  
5, debug: (google assistant response)

```auto
object
command: "action.devices.commands.ThermostatTemperatureSetpoint"
params: object
thermostatTemperatureSetpoint: 18
online: true

```

5, get integer valuee (18) ?????

---

<div class="post-metadata">

**Author:** ![M-a-r-t-i-n](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/m-a-r-t-i-n/32/52391_2.png) [@M-a-r-t-i-n](https://discourse.nodered.org/u/M-a-r-t-i-n)\
**Post date:** [8 May 2022 07:57 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/8 "2022-05-08T07:57:11Z")

</div>

> [@azxo1](#):
>
> `if (msg.payload = myValue)`

In line 3, you seem to be assigning myValue to msg.payload

To do a comparison, you need to use === and not =

---

<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:** [8 May 2022 07:59 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/9 "2022-05-08T07:59:04Z")

</div>

```auto
let myValue = msg.payload.params.thermostatTemperatureSetPoint;
msg.payload = Number(msg.payload)-10; // msg.payload is an object
  // so Number will not work as expected
if (msg.payload = myValue) // should be == or similar
{msg.payload = "on";}
else {
  {msg.payload = "off"}
}
return msg;

```

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 07:59 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/10 "2022-05-08T07:59:06Z")

</div>

Well spotted. I missed that one. 🙋

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 07:59 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/11 "2022-05-08T07:59:30Z")

</div>

Yes, I want to assign it to work with voice control  
Okay, how do I get the number 18 from this ?:

```auto
Roomterm : msg.payload : Object
object
command: "action.devices.commands.ThermostatTemperatureSetpoint"
params: object
thermostatTemperatureSetpoint: 18
online: true

```

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 08:03 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/12 "2022-05-08T08:03:23Z")

</div>

As @E1cid and @M-a-r-t-i-n have pointed out... in your 'test' you have used `=` rather than `==`.  
So you are assigning a value to msg.payoad NOT testing.

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 08:04 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/13 "2022-05-08T08:04:33Z")

</div>

```auto
let myValue = msg.payload.params.thermostatTemperatureSetPoint;
msg.payload = Number(msg.payload)-10; 
if (msg.payload == myValue) 
{msg.payload = "on";}
else {
  {msg.payload = "off"}
}
return msg;

```

"Invalid JSONata expression: Argument 1 of function "substring" does not match function signature"

---

<div class="post-metadata">

**Author:** ![dynamicdave](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dynamicdave/32/96_2.png) [@dynamicdave](https://discourse.nodered.org/u/dynamicdave)\
**Post date:** [8 May 2022 08:07 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/14 "2022-05-08T08:07:07Z")

</div>

Your second line is not valid.  
msg.payload is an object (i.e. it contains many different parts).  
So doing `msg.payload = Number(msg.payload) - 10` doesn't make sense.  
You will need to sort this out.

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 08:09 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/15 "2022-05-08T08:09:09Z")

</div>

Okay, all I want is: how do I get the number 18 from this message ?:

```auto
Roomterm : msg.payload : Object
object
command: "action.devices.commands.ThermostatTemperatureSetpoint"
params: object
thermostatTemperatureSetpoint: 18
online: true

```

This is sent back by google assisstant when I verbally set the temperature

---

<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:** [8 May 2022 08:09 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/16 "2022-05-08T08:09:32Z")

</div>

The error is a JSONata error not a function node error, please post all relevant nodes and a copy of incoming payload. If you click the error node id in the debug it should take you to the node throwing the error.

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 08:11 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/17 "2022-05-08T08:11:15Z")

</div>

No mistake !!!!

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [8 May 2022 08:13 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/18 "2022-05-08T08:13:57Z")

</div>

> [@azxo1](#):
>
> ```auto
> let myValue = msg.payload.params.thermostatTemperatureSetPoint;
> msg.payload = Number(msg.payload)-10; 
> if (msg.payload = myValue) 
> 
> ```

1. you should use `==` (=comparison) not `=` (=assignment)
2. this will never test positive as you are overwriting msg.payload

Can you explain what you are trying to accomplish ?

---

<div class="post-metadata">

**Author:** ![azxo1](https://avatars.discourse-cdn.com/v4/letter/a/b487fb/32.png) [@azxo1](https://discourse.nodered.org/u/azxo1)\
**Post date:** [8 May 2022 08:14 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/19 "2022-05-08T08:14:42Z")

</div>

Okay, all I want is: how do I get the number 18 from this message ?:

```auto
Roomterm : msg.payload : Object
object
command: "action.devices.commands.ThermostatTemperatureSetpoint"
params: object
thermostatTemperatureSetpoint: 18
online: true

```

This is sent back by google assisstant when I verbally set the temperature

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [8 May 2022 08:15 UTC](https://discourse.nodered.org/t/get-object-params-value/62356/20 "2022-05-08T08:15:08Z")

</div>

See the first answer from @dynamicdave

The question is: what you want to do with that value ?

[Next page](https://discourse.nodered.org/t/get-object-params-value/62356.md?page=2)
