{"id":48762,"library":"node-red-contrib-chirpstack-enqueue","title":"ChirpStack gRPC Multicast & Enqueue Node-RED Nodes","description":"Node-RED nodes (v0.2.0) for sending multicast and unicast downlinks to ChirpStack v4 via gRPC. Supports confirmed downlinks, automatic payload encoding (hex/base64/UTF-8/Buffer), and secure API token storage. Designed for LoRaWAN automation workflows within Node-RED. Requires Node.js >=16 and a ChirpStack v4 gRPC endpoint. Released as part of the node-red-contrib-chirpstack-enqueue package.","status":"active","version":"0.2.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","node-red","chirpstack","lorawan","downlink","grpc"],"install":[{"cmd":"npm install node-red-contrib-chirpstack-enqueue","lang":"bash","label":"npm"},{"cmd":"yarn add node-red-contrib-chirpstack-enqueue","lang":"bash","label":"yarn"},{"cmd":"pnpm add node-red-contrib-chirpstack-enqueue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Runtime environment required for Node-RED nodes","package":"node-red","optional":false}],"imports":[{"note":"These are Node-RED nodes, not a programmatic library. Install via Manage Palette or npm install in your Node-RED user directory.","wrong":"Attempting to require('node-red-contrib-chirpstack-enqueue') in a script","symbol":"chirpstack-enqueue","correct":"Use the node in Node-RED palette after installing the package; no JavaScript import needed."},{"note":"Nodes are loaded automatically by Node-RED when the package is installed.","wrong":"Attempting to require('node-red-contrib-chirpstack-enqueue/multicast')","symbol":"chirpstack-multicast","correct":"Use the node in Node-RED palette after installing the package; no JavaScript import needed."},{"note":"Config nodes are managed in Node-RED flows, not via direct import.","wrong":"Trying to import the config node programmatically","symbol":"chirpstack-server-multicast","correct":"Use the node in Node-RED palette after installing the package; no JavaScript import needed."}],"quickstart":{"code":"// This is a Node-RED flow, not a script. Import the following JSON into Node-RED:\n[\n  {\n    \"id\": \"server1\",\n    \"type\": \"chirpstack-server-multicast\",\n    \"name\": \"ChirpStack Server\",\n    \"server\": \"chirpstack:8080\",\n    \"apiToken\": \"${API_TOKEN}\"\n  },\n  {\n    \"id\": \"node1\",\n    \"type\": \"chirpstack-enqueue\",\n    \"z\": \"tab1\",\n    \"name\": \"Enqueue Downlink\",\n    \"server\": \"server1\",\n    \"x\": 400,\n    \"y\": 300,\n    \"wires\": [[\"helper1\"]]\n  },\n  {\n    \"id\": \"inject1\",\n    \"type\": \"inject\",\n    \"name\": \"Trigger\",\n    \"props\": [\n      {\"p\": \"devEui\", \"v\": \"0102030405060708\"},\n      {\"p\": \"fPort\", \"v\": 10},\n      {\"p\": \"payload\", \"v\": \"48656C6C6F\"}\n    ],\n    \"repeat\": \"\",\n    \"crontab\": \"\",\n    \"once\": false,\n    \"onceDelay\": 0.1,\n    \"topic\": \"\",\n    \"x\": 200,\n    \"y\": 300,\n    \"wires\": [[\"node1\"]]\n  },\n  {\n    \"id\": \"helper1\",\n    \"type\": \"debug\",\n    \"name\": \"Result\",\n    \"active\": true,\n    \"tosidebar\": true,\n    \"console\": false,\n    \"tostatus\": false,\n    \"complete\": \"true\",\n    \"targetType\": \"full\",\n    \"x\": 600,\n    \"y\": 300,\n    \"wires\": []\n  }\n]","lang":"json","description":"Creates a ChirpStack server config node and an enqueue node, triggered by an inject node with devEui, fPort, and hex payload."},"warnings":[{"fix":"Use Node-RED's credential system; do not hardcode token in the flow JSON.","message":"API Token must be stored in Node-RED credentials. The token is not visible in flow exports.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Always specify the port when configuring the chirpstack-server-multicast node.","message":"The gRPC server address must include the port (e.g., 'chirpstack:8080'). Default port is 8080.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Convert your payload to a supported format (hex string, base64 string, UTF-8 string, or Buffer) before passing to msg.payload.","message":"Payload encoding: If payload is not hex, base64, or UTF-8 string, it must be sent as a Buffer. The node does not auto-detect arbitrary object payloads.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Ensure your ChirpStack server is v4 or later.","message":"ChirpStack v3 is not supported. This package only works with ChirpStack v4 gRPC API.","severity":"deprecated","affected_versions":">=0.1.0"},{"fix":"For unicast downlinks, use the chirpstack-enqueue node with a devEui.","message":"The multicast node requires a multicast group ID. If you are not using multicast, use the enqueue node instead.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"search_vec":"'16':48 'api':34 'autom':40 'automat':28 'chirpstack':1,21,51,64,71 'confirm':26 'contrib':63 'design':37 'downlink':19,27,73 'encod':30 'endpoint':54 'enqueu':4,65 'grpc':2,24,53,74 'hex/base64/utf-8/buffer':31 'javascript':67 'lorawan':39,72 'multicast':3,16 'node':6,8,10,12,44,61,69 'node-r':5,9,43,68 'node-red-contrib-chirpstack-enqueu':60 'node.js':47 'packag':66 'part':57 'payload':29 'red':7,11,45,62,70 'releas':55 'requir':46 'secur':33 'send':15 'storag':36 'support':25 'token':35 'unicast':18 'v0.2.0':13 'v4':22,52 'via':23 'within':42 'workflow':41","created_at":"2026-06-07T16:58:19.812557+00:00","updated_at":"2026-06-07T16:58:19.812557+00:00","problems":[{"fix":"Verify ChirpStack version >=4 and that the gRPC interface is configured correctly.","cause":"ChirpStack server version is not v4 or the gRPC service is not enabled.","error":"Error: 12 UNIMPLEMENTED: method not implemented"},{"fix":"Check the server address in the chirpstack-server-multicast config node. Ensure the port (usually 8080) is included.","cause":"The gRPC server address is incorrect or not reachable.","error":"Error: 14 UNAVAILABLE: Connection refused"},{"fix":"Set msg.multicastGroupId or msg.payload.multicastGroupId to a valid multicast group ID.","cause":"msg.multicastGroupId or msg.payload.multicastGroupId is missing for multicast node.","error":"TypeError: Cannot read properties of undefined (reading 'multicastGroupId')"},{"fix":"Format devEui as an 8-byte hex string, e.g., '0102030405060708'.","cause":"The devEui provided is not a 16-character hex string.","error":"Error: 3 INVALID_ARGUMENT: devEui must be 8 bytes hex"},{"fix":"Set fPort to an integer between 1 and 223.","cause":"fPort is out of allowed range.","error":"Error: 3 INVALID_ARGUMENT: fPort must be between 1 and 223"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"node-red-contrib-chirpstack-enqueue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["iot"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}