{"id":20435372,"url":"https://github.com/andreasheine/sampleserver-node-opcua","last_synced_at":"2025-06-17T04:39:31.097Z","repository":{"id":37069809,"uuid":"399217119","full_name":"AndreasHeine/SampleServer-node-opcua","owner":"AndreasHeine","description":"OPC UA Sample Server based on node-opcua. Showcasing how to implement OPC UA companion specifications. ","archived":false,"fork":false,"pushed_at":"2025-06-12T14:10:51.000Z","size":4865,"stargazers_count":18,"open_issues_count":7,"forks_count":19,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-12T15:25:27.176Z","etag":null,"topics":["node-opcua","opcua","opcuaserver","typescript","umati"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndreasHeine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-08-23T18:57:02.000Z","updated_at":"2025-06-12T14:09:59.000Z","dependencies_parsed_at":"2024-05-02T16:26:07.930Z","dependency_job_id":"bccd664c-4dc6-4668-83ba-f10f3cf49d88","html_url":"https://github.com/AndreasHeine/SampleServer-node-opcua","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AndreasHeine/SampleServer-node-opcua","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasHeine%2FSampleServer-node-opcua","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasHeine%2FSampleServer-node-opcua/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasHeine%2FSampleServer-node-opcua/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasHeine%2FSampleServer-node-opcua/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndreasHeine","download_url":"https://codeload.github.com/AndreasHeine/SampleServer-node-opcua/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndreasHeine%2FSampleServer-node-opcua/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260294188,"owners_count":22987600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["node-opcua","opcua","opcuaserver","typescript","umati"],"created_at":"2024-11-15T08:33:41.257Z","updated_at":"2025-06-17T04:39:31.087Z","avatar_url":"https://github.com/AndreasHeine.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SampleServer-node-opcua\n\n[![Node.js CI](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/node.js.yml/badge.svg)](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/node.js.yml)\n[![CodeQL](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/codeql-analysis.yml)\n[![Lint Code Base](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/linter.yml/badge.svg)](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/linter.yml)\n[![Container Build](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/container_build.yml/badge.svg)](https://github.com/AndreasHeine/SampleServer-node-opcua/actions/workflows/container_build.yml)\n\nOPC UA Sample Server based on [node-opcua](https://github.com/node-opcua/node-opcua)  \nthe official book node-opcua: [node-opcua by example](https://leanpub.com/node-opcuabyexample-edition2024) by [Sterfive](https://www.sterfive.com)  \nAPI Docs: [2.32.0](https://node-opcua.github.io/api_doc/2.32.0/index.html)\n\n## Usage\n\n- `download and unpack`\n- `open folder in VS Code (or in terminal)`\n- `npm install`\n- `npm run start`\n\n## Example Users\n\nUser: `admin` Password: `pw1`  \nUser: `operator` Password: `pw2`  \nUser: `guest` Password: `pw3`\n\n## Ephemeral Dev Environment\n\n- [Click](https://gitpod.io/#https://github.com/AndreasHeine/SampleServer-node-opcua)\n- `npm run start`\n- split terminal: `opcua-commander -e opc.tcp://localhost:4840/UA` to have a local OPC UA client\n\n## Docker\n\nSet \"IP\" and \"PORT\" in env:\n\n- `docker run -it -p 4840:4840 -e PORT=4840 -e IP=127.0.0.1 --name sampleserver-node-opcua ghcr.io/andreasheine/sampleserver-node-opcua:main`\n\n## Online Server Instance\n\n- `opc.tcp://opcua.umati.app:4843`\n\n## Implementations of OPC UA Companion Specifications\n\n![image](./img/addressspace.PNG)\n\n## Implementation of Energy Monitoring\n\nImplemented in _SampleMachineTool_Energy_.\n\n- Used [OPC 40001-4 UA for Machinery Part 4: Energy Management (Release Candidate 1.0)](https://www.vdma.org/catalog-detail/-/catalog/30238).\n- Implemented 3-phase electricity, compressed air and cooling water monitoring.\n  - Simulated fluctuations of active voltage and current, total electric energy import.\n  - Simulated fluctuations of air and water flow rates.\n\n![image](./img/mt_energy.png)\n\n## License\n\n![GitHub](https://img.shields.io/github/license/AndreasHeine/SampleServer-node-opcua)\n\nUnless otherwise specified, source code in this repository is licensed under the [Apache 2.0 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasheine%2Fsampleserver-node-opcua","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreasheine%2Fsampleserver-node-opcua","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreasheine%2Fsampleserver-node-opcua/lists"}