{"id":40995067,"url":"https://github.com/guycorbaz/opcgw","last_synced_at":"2026-01-22T08:09:59.530Z","repository":{"id":259043109,"uuid":"874674754","full_name":"guycorbaz/opcgw","owner":"guycorbaz","description":"Chirpstack to opc ua gateway","archived":false,"fork":false,"pushed_at":"2025-09-07T12:41:08.000Z","size":811,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-07T14:37:42.105Z","etag":null,"topics":["chirpstack","gateway","iot","opc-ua","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/guycorbaz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-18T09:00:15.000Z","updated_at":"2025-09-07T12:38:44.000Z","dependencies_parsed_at":"2025-03-09T16:23:16.905Z","dependency_job_id":"950e7b49-2e01-4510-9344-e6ae922f7fc1","html_url":"https://github.com/guycorbaz/opcgw","commit_stats":null,"previous_names":["guycorbaz/opcgw"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/guycorbaz/opcgw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fopcgw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fopcgw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fopcgw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fopcgw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guycorbaz","download_url":"https://codeload.github.com/guycorbaz/opcgw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guycorbaz%2Fopcgw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28659250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["chirpstack","gateway","iot","opc-ua","rust"],"created_at":"2026-01-22T08:09:58.290Z","updated_at":"2026-01-22T08:09:59.522Z","avatar_url":"https://github.com/guycorbaz.png","language":"Rust","readme":"![build and test](https://github.com/guycorbaz/opcgw/actions/workflows/ci.yml/badge.svg)\n\n# ChirpStack to OPC UA Gateway\n\nThis is a gateway between ChirpStack and OPC UA,\nenabling communication between IoT devices managed by ChirpStack\nand industrial systems using OPC UA.\n\nIt implements an opc ua server, where opc ua clients can connect on,\nand a chirpstack client, used to poll the chirpstack server.\n\n\n## Table of Contents\n\n1. [Introduction](#introduction)\n2. [Features](#features)\n3. [Prerequisites](#prerequisites)\n4. [Installation](#installation)\n5. [Configuration](#configuration)\n6. [Usage](#usage)\n7. [Project Structure](#project-structure)\n8. [Contributing](#contributing)\n9. [License](#license)\n\n## Introduction\n\nThe main goal of the Chirpstack to OPC UA gateway is to allow connecting\nan SCADA to Chirpstack, in order to collect metrics and send commands\nthat will be enqueues on the device.\n\nSome SCADA only understand Sparkplug mqtt specification.\nOn the other hand Chirpstack entities mainly relies on Chirpstack generated ids,\nthat are not really user friendly, which might lead to mistakes when configuring systems.\n\nI wanted to control my LoRa watering valves, in my fruit tree orchards, via my [SCADA](https://en.wikipedia.org/wiki/SCADA),\nin order to optimize water use.\nI also wanted to learn rust. Therefore I decided to develop this gateway with this language.\nThe program is certainly not designed with the best practices of rust language and\ncertainly needs some improvements. That's why *opcgw* is under heavy development.\n\n## Features\n\n- Communication with ChirpStack server via gRPC API\n- Implementation of an OPC UA server\n- Management of device metrics via configuration file\n\n\n## Limitations\n\nChirpstack propose 5 metric types:\n- Unknown/Unset\n- Counter\n- Absolute\n- Gauge\n- String\n\nAt the time being, only gauge is supported.\n\nThe gateway has been tested only with [fuxa](https://github.com/frangoteam/FUXA) scada for the moment.\n\n\n## Prerequisites\n\nAt the time being, the application has only been tested on linux.\n\n\n## Installation\n\nThe software installation steps are:\n- install rust\n- clone opcgw repository (git clone https://github.com/guycorbaz/opcgw.git)\n- edit the gateway configuration file\n- edit the opcua opc ua configuration file\n- launching the program.\nLog files are under log folder just below opc_ua_chirpstack_gateway binary.\n\nIt also possible to run opcgw as a docker container.cargo clean\n\n## Configuration\n\nAt the moment, opc_ua_chirpstack_gateway is configured via two configuration files.\n\n- One configuration file for the gateway\n- One configuration file for the opc ua server. This might change in the future.\n\nDefault location of these files is config folder, located just below the root of the\n*opc_ua_chirpstack_gateway* binary file. It is possible to configure the path of\nthe gateway configuration file via \"CONFIG_PATH\" environment variable. However, the path\nof the opc ua configuration file is defined in the gateway configuration file.\nThis is not ideal and will certainly be changed in the future.\n\n## Usage\n \n[Instructions on how to use the application][]()\n\n\n## Project Structure\n\nThe project is organized in the following way:\n- main.rs: the main rust file\n- config.rs: to manage configurations\n- chirpstack.rs: containing  structures and methods for communications with chirpstack server\n- opc_ua.rs: containing the code for the opc ua server\n- storage.rs: managing data storage\n- utils.rs: definition for the  whole project\n\nThis organization might change in the future.\n\n## Contributing\n\nAny contributions you make are greatly appreciated. If you identify any errors,\nor have an idea for an improvement, please open an [issue](https://github.com/guycorbaz/opcgw/issues).\nBut before filing a new issue, please look through already existing issues. Search open and closed issues first.\n\nNon-code contributions are also highly appreciated, such as improving the documentation\nor promoting opcgw on social media.\n\n\n## License\n\nMIT OR Apache-2.0.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguycorbaz%2Fopcgw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguycorbaz%2Fopcgw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguycorbaz%2Fopcgw/lists"}