disk91 / helium-chirpstack-community

Glue between helium and chirpstack
20 stars 6 forks source link

Helium / Chirpstack integration

screenshot

Version

Do not use the master version in production, they are in-progress not tested at scale versions, please use the Released Versions

Chirpstack support

Features (development in progress)

Build the application

Installation is automated with a script and take under 5 minutes for a standard configuration.

As a pre-requisite:

Once you completed the pre-requisite, you can run setup script

bash ./makeiteasy.sh

For advanced user & usage, I recommend to follow the full installation guide including the Chirpstack configuration is detailed on (disk91.com blogpost)[https://www.disk91.com/2022/technology/helium/installing-chirpstack-lorawan-network-server-for-helium/]

Debugging

In most of the cases, problems come from mis-settings during the configuration phase. Some tips to help in debugging:

docker ps list the running services, if some are restarting on every 30 seconds, look at the service logs to identify the problem. docker logs service_name will show you the details.

docker logs helium-helium-1 | grep -i error also helps to identify the reason why the companion refuses to start or starts with some feature deactivated due to setting issues.

Monitoring

The solution comes with grafana dashboard pre-configured and server / docker monitoring. grafana is not exposed publicly and it can be accessed over a ssh tunnel or locally on port 8050. Default user / password is admin/admin.

Stop the application

License

This program is distributed according to GPLv3 licence for any private IoT device fleet purpose, without restriction.

Specific licences can be obtained by contacting the Author. Any reuse of this code-source needs to be indicated and modifications/addition need to be publicly published, even when small pieces of code or architecture are reused as requested by GPLv3.

Credits

Thank you to the following persons contributing to the project:

Misc for developers

Add following headers in file chirpstack/api/proto/internal/internal.proto

option java_package = "io.chirpstack.internal";
option java_multiple_files = true;
option java_outer_classname = "InternalProto";
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/common/common.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/user.proto 
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/device.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/internal.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/tenant.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/internal/internal.proto

./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/stream/api_request.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/stream/frame.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/gw/gw.proto

Install OpenJDK21

apt-get install openjdk-21-jdk
update-java-alternatives --set /usr/lib/jvm/java-1.21.0-openjdk-amd64