# Node-red-contrib-home-assistant-websocket using msg.payload

**URL:** <https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628>\
**Category:** General\
**Created:** [23 April 2021 18:21 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628 "2021-04-23T18:21:33Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajocius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ajocius/32/19024_2.png) [@ajocius](https://discourse.nodered.org/u/ajocius)\
**Post date:** [23 April 2021 18:21 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/1 "2021-04-23T18:21:33Z")

</div>

I have 'node-red-contrib-home-assistant-websocket' in my pallete. Using it to send command open or close door depending on temperature measure. So I have msg.payload value either 'cover.open\_cover' or 'cover.close\_cover' and would like to use in 'call service' node to send command to either close or open. Node has 'Service' field that requires value. It works if I put exact command like 'cover.open\_cover' . But I want to use msg.payload from previous steps where I check temperature. I tried payload, msg.payload, none of which worked, hope to get help here

---

<div class="post-metadata">

**Author:** ![Robmak](https://avatars.discourse-cdn.com/v4/letter/r/3ab097/32.png) [@Robmak](https://discourse.nodered.org/u/Robmak)\
**Post date:** [23 April 2021 21:08 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/2 "2021-04-23T21:08:15Z")

</div>

If I understand you right you need to set a flow context that can be then used in aflow with function or change nodes to set flow context to the message payload. I need more info. Post you flow and detail where you can exactly which information is causing problems for you and what is the ideal response from your flow.

---

<div class="post-metadata">

**Author:** ![ajocius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ajocius/32/19024_2.png) [@ajocius](https://discourse.nodered.org/u/ajocius)\
**Post date:** [24 April 2021 13:26 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/4 "2021-04-24T13:26:28Z")

</div>

Here is my flow. Function generates msg.payload to be either open\_cover or close\_cover and I would like to use that msg.payload to call service in Home Assistant. So my first attempt was below, but now I think I will just juse switch node and that should do want I wanted:

```auto
> [{"id":"7cde4c08.59790c","type":"inject","z":"123bd5e5.5a9a9a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"19","payloadType":"num","x":90,"y":580,"wires":[["3d0febb5.d5c57c"]]},{"id":"3d0febb5.d5c57c","type":"function","z":"123bd5e5.5a9a9a","name":"","func":"const position = [28,26,24,20,19];\nvar current = flow.get(\"Temp-Air\") || 0;\nfor(var val of position){\n if(msg.payload>=val) break;\n}\nif(val === current){\n msg.reset = true;\n}else if(val > current){\n msg.payload = \"open_cover\";\n}else if(val < current){\n msg.payload =\"close_cover\";\n}\nflow.set(\"current\", val)\nmsg.delay = Math.abs(position.indexOf(current) - position.indexOf(val)) * 12000\n\n\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":660,"wires":[["d855a406.a5d668"]]},{"id":"7e7e1422.7b001c","type":"inject","z":"123bd5e5.5a9a9a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"20","payloadType":"num","x":96.33332824707031,"y":623,"wires":[["3d0febb5.d5c57c"]]},{"id":"73276516.506054","type":"inject","z":"123bd5e5.5a9a9a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"24","payloadType":"num","x":100,"y":660,"wires":[["3d0febb5.d5c57c"]]},{"id":"16f90a5f.05d0fe","type":"inject","z":"123bd5e5.5a9a9a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"26","payloadType":"num","x":100,"y":700,"wires":[["3d0febb5.d5c57c"]]},{"id":"355bcc13.f250bc","type":"inject","z":"123bd5e5.5a9a9a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"28","payloadType":"num","x":107.33332824707031,"y":742,"wires":[["3d0febb5.d5c57c"]]},{"id":"2313a34d.98b944","type":"trigger","z":"123bd5e5.5a9a9a","name":"","op1":"","op2":"stop","op1type":"pay","op2type":"str","duration":"250","extend":false,"overrideDelay":true,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":500,"y":600,"wires":[["a5d690bb.72771"]]},{"id":"c3652dc3.7bff38","type":"debug","z":"123bd5e5.5a9a9a","name":"","active":false,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"delay","statusType":"msg","x":750,"y":660,"wires":[]},{"id":"d855a406.a5d668","type":"api-call-service","z":"123bd5e5.5a9a9a","name":"Open","server":"bbbd4030.fdb23","version":1,"debugenabled":false,"service_domain":"cover","service":"","entityId":"cover.bf9767fbce7a507ed4xp8g","data":"{\"message\":\"{{payload}}\"}","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":410,"y":700,"wires":[["2313a34d.98b944"]]},{"id":"a5d690bb.72771","type":"api-call-service","z":"123bd5e5.5a9a9a","name":"Stop","server":"bbbd4030.fdb23","version":1,"debugenabled":false,"service_domain":"cover","service":"Stop_cover","entityId":"cover.bf9767fbce7a507ed4xp8g","data":"","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":590,"y":700,"wires":[["c3652dc3.7bff38"]]},{"id":"bbbd4030.fdb23","type":"server","name":"Home Assistant","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

```

---

<div class="post-metadata">

**Author:** ![ajocius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ajocius/32/19024_2.png) [@ajocius](https://discourse.nodered.org/u/ajocius)\
**Post date:** [24 April 2021 13:50 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/5 "2021-04-24T13:50:00Z")

</div>

sorry, not sure how to post flow in one line in this forum...

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [24 April 2021 15:16 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/6 "2021-04-24T15:16:32Z")

</div>

surround your code with three backticks  
`````  
`like this`  
`````

You can edit and correct your post by clicking the pencil icon.

---

<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:** [23 June 2021 15:16 UTC](https://discourse.nodered.org/t/node-red-contrib-home-assistant-websocket-using-msg-payload/44628/7 "2021-06-23T15:16:49Z")

</div>

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