{"_id":"@conecsa/node-red-contrib-conecsa-system-vision","_rev":"4-2499562799f668ca346468a6779b6c37","name":"@conecsa/node-red-contrib-conecsa-system-vision","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.0":{"name":"@conecsa/node-red-contrib-conecsa-system-vision","version":"1.1.0","keywords":["node-red","node-red-contrib","conecsa","system-vision","hub-vision","object-detection","detection","vision","jetson"],"author":{"name":"Conecsa"},"license":"Apache-2.0","_id":"@conecsa/node-red-contrib-conecsa-system-vision@1.1.0","maintainers":[{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},{"name":"conecsaautomacao","email":"suporte@conecsa.com.br"}],"homepage":"https://github.com/conecsa/Conecsa-System-Vision#readme","bugs":{"url":"https://github.com/conecsa/Conecsa-System-Vision/issues"},"dist":{"shasum":"039609257646f82a6ae4a85ae8916bee8d8c3011","tarball":"https://registry.npmjs.org/@conecsa/node-red-contrib-conecsa-system-vision/-/node-red-contrib-conecsa-system-vision-1.1.0.tgz","fileCount":29,"integrity":"sha512-uLeOsFms8PDLV6xjoAuINsUVAbxSA74sNOEfcbnyivNUEFKW6fJqT6V8+duPCA3GphRU57dWizcR686AN+RILw==","signatures":[{"sig":"MEYCIQC22tUaYoy2WqF6HHvTxQfSO6jNgjUWVxO7C6OkKQqyCwIhANp/Ahney/k473Leb89PHkG+nPpqil3AGII60n7FKxDC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113826},"jest":{"testMatch":["**/test/**/*_spec.js"],"testEnvironment":"node"},"engines":{"node":">=18"},"gitHead":"52cde67303eed7f8c877ed693eb6f5f9cf9c92ce","scripts":{"test":"jest","prepublishOnly":"npm test"},"_npmUser":{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},"node-red":{"nodes":{"conecsa-hub":"nodes/hub/hub.js","conecsa-gpio":"nodes/gpio/gpio.js","conecsa-stats":"nodes/stats/stats.js","conecsa-detection":"nodes/detection/detection.js","conecsa-threshold":"nodes/threshold/threshold.js","conecsa-start-stop":"nodes/start-stop/start-stop.js","conecsa-reset-stats":"nodes/reset-stats/reset-stats.js","conecsa-system-status":"nodes/system-status/system-status.js","conecsa-camera-trigger":"nodes/trigger/trigger.js","conecsa-detection-models":"nodes/detection-models/detection-models.js"},"version":">=3.1.0"},"repository":{"url":"git+https://github.com/conecsa/Conecsa-System-Vision.git","type":"git","directory":"flow/nodes/conecsa-system-vision"},"_npmVersion":"12.0.2","description":"Node-RED nodes for Conecsa System Vision: control and observe object-detection devices, directly or through a Conecsa hub","directories":{},"_nodeVersion":"26.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","node-red":"^4.1.7","selfsigned":"^5.5.0","node-red-node-test-helper":"^0.3.4"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-conecsa-system-vision_1.1.0_1787430267461_0.1490303653338425","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@conecsa/node-red-contrib-conecsa-system-vision","version":"1.1.1","keywords":["node-red","node-red-contrib","conecsa","system-vision","hub-vision","object-detection","detection","vision","jetson"],"author":{"name":"Conecsa"},"license":"Apache-2.0","_id":"@conecsa/node-red-contrib-conecsa-system-vision@1.1.1","maintainers":[{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},{"name":"conecsaautomacao","email":"suporte@conecsa.com.br"}],"homepage":"https://github.com/conecsa/Conecsa-System-Vision#readme","bugs":{"url":"https://github.com/conecsa/Conecsa-System-Vision/issues"},"dist":{"shasum":"87b7e62e5df99135c2e5aeebec0a445a5d90afd9","tarball":"https://registry.npmjs.org/@conecsa/node-red-contrib-conecsa-system-vision/-/node-red-contrib-conecsa-system-vision-1.1.1.tgz","fileCount":29,"integrity":"sha512-3fTSxFQmBDEkPTcX7qxQzA5QX01aEg5hLZpgullJAp402mhRpaMHi+8B2LHy+lICqc9dyxMJggkXT/MiZDML3Q==","signatures":[{"sig":"MEYCIQCUxQBPtuClwEDRexEOqgdHgNHAiYC1RziiOef9NLwkRQIhAIJa4DaX4DTA+EfxpSr7vVEf8iS8PPp3CFD4cWPeZM6I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114036},"jest":{"testMatch":["**/test/**/*_spec.js"],"testEnvironment":"node"},"engines":{"node":">=18"},"gitHead":"af4449de84a0f407e1952c1edae595554f65062a","scripts":{"test":"jest","prepublishOnly":"npm test"},"_npmUser":{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},"node-red":{"nodes":{"conecsa-hub":"nodes/hub/hub.js","conecsa-gpio":"nodes/gpio/gpio.js","conecsa-stats":"nodes/stats/stats.js","conecsa-detection":"nodes/detection/detection.js","conecsa-threshold":"nodes/threshold/threshold.js","conecsa-start-stop":"nodes/start-stop/start-stop.js","conecsa-reset-stats":"nodes/reset-stats/reset-stats.js","conecsa-system-status":"nodes/system-status/system-status.js","conecsa-camera-trigger":"nodes/trigger/trigger.js","conecsa-detection-models":"nodes/detection-models/detection-models.js"},"version":">=3.1.0"},"repository":{"url":"git+https://github.com/conecsa/Conecsa-System-Vision.git","type":"git","directory":"flow/nodes/conecsa-system-vision"},"_npmVersion":"12.0.2","description":"Node-RED nodes for Conecsa System Vision: control and observe object-detection devices, directly or through a Conecsa hub","directories":{},"_nodeVersion":"26.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","node-red":"^4.1.7","selfsigned":"^5.5.0","node-red-node-test-helper":"^0.3.4"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-conecsa-system-vision_1.1.1_1787430834948_0.49860067033794153","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@conecsa/node-red-contrib-conecsa-system-vision","version":"1.1.2","keywords":["node-red","node-red-contrib","conecsa","system-vision","hub-vision","object-detection","detection","vision","jetson"],"author":{"name":"Conecsa"},"license":"Apache-2.0","_id":"@conecsa/node-red-contrib-conecsa-system-vision@1.1.2","maintainers":[{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},{"name":"conecsaautomacao","email":"suporte@conecsa.com.br"}],"homepage":"https://github.com/conecsa/Conecsa-System-Vision#readme","bugs":{"url":"https://github.com/conecsa/Conecsa-System-Vision/issues"},"dist":{"shasum":"cdc9cfdc2f85808df5945fdfb902cf529651c93c","tarball":"https://registry.npmjs.org/@conecsa/node-red-contrib-conecsa-system-vision/-/node-red-contrib-conecsa-system-vision-1.1.2.tgz","fileCount":29,"integrity":"sha512-23nECMMwNGOc20j99zyFXIe0CFNd+J/RwyVpYV92CfCGKWoapO4gsyujfav6uWxFv4gQLKGPhs0NZmrPQiWmDA==","signatures":[{"sig":"MEUCIQDR53m42jwca6n4kfw0DTwgNuctKkuLataCUC9AHPvilgIgMKmB2fn/G9Y+0En0MNgBW6pvmbSLvBPu6OjJkIuybIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114199},"jest":{"testMatch":["**/test/**/*_spec.js"],"testEnvironment":"node"},"engines":{"node":">=18"},"gitHead":"4de892e73f03ae3e7b49da6fb3b5156974f63404","scripts":{"test":"jest","prepublishOnly":"npm test"},"_npmUser":{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},"node-red":{"nodes":{"conecsa-hub":"nodes/hub/hub.js","conecsa-gpio":"nodes/gpio/gpio.js","conecsa-stats":"nodes/stats/stats.js","conecsa-detection":"nodes/detection/detection.js","conecsa-threshold":"nodes/threshold/threshold.js","conecsa-start-stop":"nodes/start-stop/start-stop.js","conecsa-reset-stats":"nodes/reset-stats/reset-stats.js","conecsa-system-status":"nodes/system-status/system-status.js","conecsa-camera-trigger":"nodes/trigger/trigger.js","conecsa-detection-models":"nodes/detection-models/detection-models.js"},"version":">=3.1.0"},"repository":{"url":"git+https://github.com/conecsa/Conecsa-System-Vision.git","type":"git","directory":"flow/nodes/conecsa-system-vision"},"_npmVersion":"11.16.0","description":"Node-RED nodes for Conecsa System Vision: control and observe object-detection devices, directly or through a Conecsa hub","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","node-red":"^4.1.7","selfsigned":"^5.5.0","node-red-node-test-helper":"^0.3.4"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-conecsa-system-vision_1.1.2_1788973756869_0.8264977258639401","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"_id":"@conecsa/node-red-contrib-conecsa-system-vision@1.1.3","bugs":{"url":"https://github.com/conecsa/Conecsa-System-Vision/issues"},"dist":{"shasum":"552ccd63d9d0b375ed0cc957490009428a650911","tarball":"https://registry.npmjs.org/@conecsa/node-red-contrib-conecsa-system-vision/-/node-red-contrib-conecsa-system-vision-1.1.3.tgz","fileCount":29,"integrity":"sha512-M2LmjbQawoXt+O+xU9Oi+zdJwmUG+0jqY9heuAedHAqLu2x8yx2rljZo3UKy2UoPmYr24KuNELWRTwlrPXjT3w==","signatures":[{"sig":"MEQCICkGAIkCaNfU01PQAJW+r8Kynf/GA1o8ljmnKjdsRs1xAiBAXzgmV+oLUD8gorP6jrX6QIE6MolJTkU20an/hXDn7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCdTPyO2D6Ru2HtCGenU8c3WitvSVpzKs4zz8dqTML78QIgLr9OL3Xz81ACH5g4TlAYfLrdrhP0dqufuoo5u9qOXDg="}],"unpackedSize":117709},"jest":{"testMatch":["**/test/**/*_spec.js"],"testEnvironment":"node"},"name":"@conecsa/node-red-contrib-conecsa-system-vision","author":{"name":"Conecsa"},"engines":{"node":">=18"},"gitHead":"e9a3e9087d4c47fdde22c4aa99f0e17e5f8fcd6e","license":"Apache-2.0","scripts":{"test":"jest","prepublishOnly":"npm test"},"version":"1.1.3","_npmUser":{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},"homepage":"https://github.com/conecsa/Conecsa-System-Vision#readme","keywords":["node-red","node-red-contrib","conecsa","system-vision","hub-vision","object-detection","detection","vision","jetson"],"node-red":{"nodes":{"conecsa-hub":"nodes/hub/hub.js","conecsa-gpio":"nodes/gpio/gpio.js","conecsa-stats":"nodes/stats/stats.js","conecsa-detection":"nodes/detection/detection.js","conecsa-threshold":"nodes/threshold/threshold.js","conecsa-start-stop":"nodes/start-stop/start-stop.js","conecsa-reset-stats":"nodes/reset-stats/reset-stats.js","conecsa-system-status":"nodes/system-status/system-status.js","conecsa-camera-trigger":"nodes/trigger/trigger.js","conecsa-detection-models":"nodes/detection-models/detection-models.js"},"version":">=3.1.0"},"repository":{"url":"git+https://github.com/conecsa/Conecsa-System-Vision.git","type":"git","directory":"flow/nodes/conecsa-system-vision"},"_npmVersion":"12.0.2","description":"Node-RED nodes for Conecsa System Vision: control and observe object-detection devices, directly or through a Conecsa hub","directories":{},"maintainers":[{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},{"name":"conecsaautomacao","email":"suporte@conecsa.com.br"}],"_nodeVersion":"26.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","node-red":"^4.1.7","selfsigned":"^5.5.0","node-red-node-test-helper":"^0.3.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-red-contrib-conecsa-system-vision_1.1.3_1789484107201_0.6755273942006272"}}},"time":{"created":"2026-08-22T20:24:27.305Z","modified":"2026-09-15T14:55:07.487Z","1.1.0":"2026-08-22T20:24:27.602Z","1.1.1":"2026-08-22T20:33:55.076Z","1.1.2":"2026-09-09T17:09:17.030Z","1.1.3":"2026-09-15T14:55:07.277Z"},"bugs":{"url":"https://github.com/conecsa/Conecsa-System-Vision/issues"},"author":{"name":"Conecsa"},"license":"Apache-2.0","homepage":"https://github.com/conecsa/Conecsa-System-Vision#readme","keywords":["node-red","node-red-contrib","conecsa","system-vision","hub-vision","object-detection","detection","vision","jetson"],"repository":{"url":"git+https://github.com/conecsa/Conecsa-System-Vision.git","type":"git","directory":"flow/nodes/conecsa-system-vision"},"description":"Node-RED nodes for Conecsa System Vision: control and observe object-detection devices, directly or through a Conecsa hub","maintainers":[{"name":"cristianosleite","email":"cristianosleite@hotmail.com"},{"name":"conecsaautomacao","email":"suporte@conecsa.com.br"}],"readme":"# @conecsa/node-red-contrib-conecsa-system-vision\n\nNode-RED nodes for [Conecsa System Vision](https://github.com/conecsa/Conecsa-System-Vision)\n— real-time object detection on NVIDIA Jetson devices. The nodes start and stop\ndetection, stream statistics and detections, tune thresholds, switch models,\nread system health, reset counters and drive GPIO pins.\n\nThey work in two ways:\n\n- **Through a Conecsa hub (hub-vision).** Devices only answer to their hub, so\n  from any Node-RED outside the device you go through the hub's\n  **Developer API**: one `conecsa-hub` configuration (host, port, API key, CA\n  certificate) shared by all nodes, and a **Device** picked per node. Requests\n  become `https://<hub>:<port>/devices/<device>/api/...`.\n- **Directly** — inside a device (the Flow container ships this package) the\n  nodes call the local api-gateway (`http://api-gateway:5000`) with no hub.\n\n## Install\n\nFrom the Node-RED palette manager (search for `conecsa`) or:\n\n```bash\ncd ~/.node-red\nnpm install @conecsa/node-red-contrib-conecsa-system-vision\n```\n\nRequires Node-RED ≥ 3.1 and Node.js ≥ 18.\n\n## Connect to a hub\n\n1. On the hub, sign in as owner/admin and open **Settings → Developer**. Turn\n   **Accept requests** on; the hub shows its URL (`https://<hub-ip>:8443`) and\n   the API key (copy it). Click **Download CA certificate** to save\n   `conecsa-hub-ca.crt`.\n2. In Node-RED, drag any Conecsa node, open it and next to **Hub** click the\n   pencil to add a `conecsa-hub` configuration: the hub's IP address, the port\n   (8443 unless you changed it on the hub), the API key, and **Upload** the CA\n   file. Keep **Verify** on.\n3. **Deploy** once (the hub configuration must be deployed before it can list\n   devices), reopen the node and pick the **Device**. The **API endpoint** row\n   shows the resulting route, e.g.\n   `https://172.29.96.198:8443/devices/conecsa-084936`.\n\nThe API key and the certificate are stored as Node-RED credentials (encrypted\nin `flows_cred.json`, not included when you export a flow). Use the hub's IP as\nhost — the hub's certificate lists its LAN addresses. Rotating the key on the\nhub requires updating the `conecsa-hub` configuration.\n\nWithout a hub, the **API endpoint** field is a direct base URL; when empty the\nnodes use the `INFERENCE_URL` environment variable, then\n`http://api-gateway:5000`.\n\nImport → Examples → *@conecsa/node-red-contrib-conecsa-system-vision* has a ready flow\nfor each mode.\n\n## Nodes\n\nAll nodes live in the **Conecsa** palette category.\n\n| Node (type id) | Description |\n|---|---|\n| **start/stop** (`conecsa-start-stop`) | Starts/stops/toggles detection. Follows the device's event stream so its badge and output reflect `is_running` whoever changed it; emits `{ payload: { is_running } }` on each transition. |\n| **camera-trigger** (`conecsa-camera-trigger`) | Enables/disables/toggles frame processing with a visual state indicator. |\n| **stats** (`conecsa-stats`) | Subscribes to the stats stream; emits `{ detections, fps, inference_time, frames_with_detections }` on change or on an interval. |\n| **detection** (`conecsa-detection`) | Per-class breakdown of the current results (optionally with the processed frame as base64), on change or on an interval; emits only while `total > 0`. `payload.task` names the device's application: on a classification device the payload holds one item without `bbox` (the frame's class above the confidence threshold) and the top-k classes under `payload.candidates`. On a segmentation device each item also carries `polygons` (its outline as rings of normalized `[x, y]` vertices). |\n| **threshold** (`conecsa-threshold`) | Sets the confidence or overlay threshold (0–1); stays in sync with the device. |\n| **detection models** (`conecsa-detection-models`) | Lists the available models or selects the active one by name. |\n| **system status** (`conecsa-system-status`) | CPU, RAM, disk, temperature and GPU metrics on demand or on an interval. |\n| **reset stats** (`conecsa-reset-stats`) | Resets the detection counter and/or statistics. |\n| **gpio** (`conecsa-gpio`) | Drives a GPIO output pin (29/31/33) HIGH/LOW and follows external changes. |\n| **conecsa-hub** (configuration) | Connection to a hub's Developer API (host, port, API key, CA, verify). |\n\nEach node's in-editor help (the ⓘ panel) documents its configuration, inputs\nand outputs in detail.\n\n## Errors\n\nA device that is offline, a wrong API key (`HTTP 401`) or a hub whose Developer\nAPI is turned off (`HTTP 503`) is reported through the node's status badge and\n`node.error` (catchable with a **catch** node).\n\n## Upgrading from 1.0.0\n\n1.0.0 only ever shipped inside the device image with unprefixed type ids\n(`stats`, `start-stop`, …). 1.1.0 prefixes them with `conecsa-`; flows built\nwith the old ids need their `\"type\"` values rewritten (export → edit → import).\n\n## Development\n\n```bash\nnpm install\nnpm test            # jest + node-red-node-test-helper, mock gateway and mock hub (HTTPS)\nnpm pack --dry-run  # what would be published\n```\n\nPublishing (maintainers): `npm login`, then `npm publish --access public` from\nthis directory — `prepublishOnly` runs the test suite first.\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE) and [NOTICE](NOTICE). \"Conecsa\" and\n\"System Vision\" are trademarks of Conecsa.\n","readmeFilename":"README.md"}