Releases: OS2iot/OS2iot-docker
v.1.5.2 - Updated Slow ADR Algorithm
What's Changed
- Corrected Sensade adr algorithm by @MStenkaer in #20
Full Changelog: v.1.5.1...v.1.5.2
v.1.5.1 - Added min and max allowed datarate
Added min and max allowed datarate in Chirpstack configuration files
What's Changed
- added minimum and max DR in chirpstack configuration by @augusthjerrild in #18
Full Changelog: v1.5.0...v.1.5.1
v1.5.0 - Upgrade to chirpstack v4
This release is intended to be used with OS2IoT-frontend v1.6.0 and OS2IoT-backend 1.6.0
What's Changed
- Updated all chirpstack images to newest and added Chirpstack v4. by @augusthjerrild in #14
- Added two services in helm for chirpstack by @augusthjerrild in #15
- Release Stage to master by @fcv-iteratorIt in #17
Breaking changes
- The Chirpstack version has been updated to v4, this breaks all communication between Chirpstack and the other resources.
New Contributors
- @fcv-iteratorIt made their first contribution in #17
Full Changelog: v1.4.0...v1.5.0
Migration guide
-
Retrieve an RDB and AOF file from the Redis server being used, and place it locally on your PC. If things go wrong in the migration and Redis gets flushed, you'll have backup data in these files. Also, make a backup of the PostgreSQL database.
-
Run the
find-desync-devices.js
(You need to enter connection information for the database before running it) file using the command:node find-desync-devices.js
. You need to haveNode.js
installed to do this, as well as the pg package (can be installed usingnpm i -g pg
). This is done to ensure that there are no LoRaWAN devices in OS2IoT that do not exist in Chirpstack. They wouldn't work as they are now anyway. -
This might output some deviceEUIs and names. If so, these devices need to be found in OS2IoT and deleted.
-
Pull the latest release from the Docker repository (https://github.com/OS2iot/OS2IoT-docker) which ensures network server V3.16.8, application server V3.17.9, gateway-bridge V4.0.10, and the new Chirpstack V4.6.
-
If your Postgres database is not managed by this repos
docker-compose
file, then a new database needs to be made with the following steps. This is where data will be migrated to.Database setup:
Connect to the server with Azure Data Studio (download PostgreSQL extension).
Run the following to create the database (Admin username should be without @<servername>)create role chirpstack with login password '<Password>'; grant chirpstack TO "<admin username>"; create database chirpstack with owner chirpstack;
Switch to the new chirpstack database and run the following:
create extension pg_trgm; create extension hstore;
-
Publish the updated infrastructure with Docker or Helm. After publishing, you should be able to sign into the new Chirpstack with username: admin and pw: admin. If you are using Kubernetes, you can access Chirpstack by port forwarding the Chirpstack pod.
-
Create an API key on the new Chirpstack instance. Go to the
API Keys
menu and create a new key. Copy the value, you won't be able to find it again. -
Insert it into your backend environment variables as
CHIRPSTACK_API_KEY
. -
Ensure that chirpstack-backend is exposed and update the environment variables
CHIRPSTACK_HOSTNAME
to the new exposed chirpstack-backend andCHIRPSTACK_PORT
to the port used by chirpstack (Default is 8080). -
Navigate to the
chirpstack-migration
folder, located in the docker repo pulled in step 3. -
Expose your redis endpoint so it can be accessed externally (this should only be relevant if you are NOT using Docker).
Port forward the Redis resource on Kubernetes. After it has been port forwarded, the resulting port can be used as the Redis endpoint (Localhost needs to be represented by127.0.0.1
in the url).In your chirpstack.toml, chirpstack-application-server.toml, and chirpstack-network-server.toml, make sure the PostgreSQL URL is set up with the format:
[postgresql] dsn="host=**HOST NAME** port=5432 dbname=chirpstack user=chirpstack password=**PASSWORD** sslmode=require"
In chirpstack.toml:
[redis] servers=["redis://127.0.0.1:**PORT**"]
In application and network-server.toml (Notice
url
instead ofservers
)[redis] url="redis://127.0.0.1:**PORT**"
and Mosquitto server with the format:
server="tcp://mosquitto-svc:1883"
-
Perform the migration using the following command. You must be in the
chirpstack-migration
folder:./chirpstack-v3-to-v4 --as-config-file **PATH/TO/CHIRPSTACK-APPLICATION-SERVER.TOML** --cs-config-file **PATH/TO/CHIRPSTACK.TOML** --ns-config-file **PATH/TO/CHIRPSTACK-NETWORK-SERVER.TOML** --drop-tenants-and-users
-
Verify that devices, profiles, and gateways have been transferred to your new Chirpstack, and verify that data is coming in to gateways and devices.
-
Change your redis endpoint back to not being accessible (remove port forwarding). That means you need to reverse what you did in step 7. Also, update chirpstack.toml to have the original redis URL again.
-
Publish backend and frontend to your OS2IoT instance and verify via the OS2IoT portal that things are working as expected, and that you can see data coming in to devices and gateways.
-
The data format has changed, thus payload decoders need to be updated. Before you update them, you should copy all your payload decoders and save them locally, so you have something to compare with, if payload decoders don't work after running the fix script. Be aware that the fix script will only handle payload decoders used in relation to LoRaWAN-devices, since the data format change is not relevant for other device types.
Run the
rename-payload-decoders
script using the commandnode ./rename-payload-decoders.js
. If all goes well, the console will print Decoders updated successfully.The following properties have been updated:
applicationID -> deviceInfo.applicationId applicationName -> deviceInfo.applicationName deviceName -> deviceInfo.deviceName devEUI -> deviceInfo.devEui deviceProfileID -> deviceInfo.deviceProfileId deviceProfileName -> deviceInfo.deviceProfileName rxInfo.loRaSNR -> rxInfo.snr rxInfo.time -> rxInfo.nsTime rxInfo.gatewayID -> rxInfo.gatewayId rxInfo.uplinkID -> rxInfo.uplinkId txInfo.loRaModulationInfo -> txInfo.modulation.lora confirmedUplink -> confirmed publishedAt -> time tags -> deviceInfo.tags rxInfo.timeSinceGPSEpoch -> rxInfo.timeSinceGpsEpoch
The following properties cannot be moved as they have not been readily found in new data packets from Chirpstack.
rxInfo.accuracy rxInfo.rfChain rxInfo.board rxInfo.antenna rxInfo.fineTimestampType txInfo.modulation txInfo.polarizationInversion
-
In Chirpstack version 4, device profiles cannot display the default ADR algorithm if nothing is set in the database. Therefore, a script needs to be executed to insert the value "default" wherever an ADR algorithm is not set.
Run the file "rename-adr-algorithm.js" using the commandnode rename-adr-algorithm.js
.
If everything goes well, the console will print the device profiles that have been updated. -
Once it is verified that data has come over, and that data is coming in to your gateway and devices, you should move your old chirpstack-network-server and chirpstack-application-server to a legacy folder, so it is not published again in future updates. Additionally, the network server and application server should be removed so they do not access Redis since they are no longer used.
v1.4.0 - MQTT device support
This release is intended to be used with backend and frontend v1.5.0
What's Changed
- Added a tls Mosquitto mqtt broker for receiving mqtt data
- docker and helm updates. Input values has to be set from the user. by @augusthjerrild in #13
Breaking changes
- There has been introduced some new settings that needs to be set for the hosting to work for MQTT support, more can be read in the docs Installation guide
Full Changelog: v.1.3.0...v1.4.0
v.1.3.0 - Support for Slow ADR Algorithm
What's Changed
- Added custom adr algorithm for slow data-rate correction by @MStenkaer in #12
New Contributors
- @MStenkaer made their first contribution in #12
Full Changelog: v.1.2.1...v.1.3.0
v.1.2.0 - New User Management, MQTT DataTarget, Improved LoRaWAN Monitoring, General fixes
What's Changed
- Added default values for email integrations by @GufCab and @augusthjerrild
Full Changelog: v.1.1.0...v1.2.0
v.1.2.1 - Number of rows per table set to 25
Minor update setting default number of rows to 25 as an environment variable.
What's Changed
- Feature/iot 1279 more rows on tables by @augusthjerrild in #11
Full Changelog: v1.2.0...v.1.2.1
v.1.1.0 - Simulator added
What's Changed
LoRaWAN simulator (https://github.com/UniCT-ARSLab/LWN-Simulator.git) has been added as a docker container.
Using this, it is now easy to simulate real LoRaWAN devices.
Full Changelog: v.1.0.1...v.1.1.0
v.1.0.1
Covers the first round of closed issues and pull requests. Compatible with frontend and backend v.1.0.1
What's Changed
- Specified which version of Mosquitto to use by @MadsSvejstrup in #3
- Updated Mosquitto to version 2 by @MadsSvejstrup in #4
- Added frontend environment variables in docker-compose and helm by @MadsSvejstrup in #6
- Updated ChirpStack to latest version by @MadsSvejstrup in #7
- Set default log levels for backend in docker compose and Helm by @GufCab in #8
New Contributors
- @MadsSvejstrup made their first contribution in #3
- @GufCab made their first contribution in #8
Full Changelog: v.1.0.0...v.1.0.1
v.1.0.0
First release of OS2iot docker
Contributors
- @VirtualSatai made their first contribution in #1
Full Changelog: https://github.com/OS2iot/OS2IoT-docker/commits/v.1.0.0