New chirpstack FUOTA Server

Hi,

I’m trying to use the new implementation of the fuota server but I don’t realy understand how to set it up.
I followed the explanation on the git and then started the fuota-server :

root@friloranet01:~/chirpstack-fuota-server# dist/linux_386/chirpstack-fuota-ser                   ver --config packaging/files/chirpstack-fuota-server.toml
INFO[0000] starting ChirpStack FUOTA Server              version=SNAPSHOT-fa9c0b                   9
INFO[0000] storage: connecting to PostgreSQL database
INFO[0000] storage: applying PostgreSQL schema migrations
INFO[0000] client/as: setup application-server client
INFO[0000] eventhandler: setup application-server event-handler
INFO[0000] api: starting fuota-server api server         bind="0.0.0.0:8070" ca_                   cert= tls_cert= tls_key=
INFO[0000] integration/eventhandler: starting event-handler server  bind="0.0.0.                   0:8090" marshaler=protobuf

It seems to run but I don’t understand how to access it. Is there a UI? I tried to acces the localhost:8070 and 8090 but nothing happend

Thank’s in advance for your help

You can find a go script in the examples/ folder of the fuota-server, which connects to that default 8070 port and creates a fuota job. The data previously found in the application server fuota deployment screen should look very familiar to the members of the fuota.Deployment object in that example script. To answer more directly, its not a UI, its a grpc endpoint. API: https://github.com/brocaar/chirpstack-api/blob/master/protobuf/fuota/fuota.proto

2 Likes

Hi,

Thank you for you reply. I am now able to start the fuota server and I successfully tested the Clock synchronization.
Now I’m trying to understand how to do a firmware update. I not familiar with Go and gRPC and it’s still difficult for me to understand how it works.
If I want to use the API with python, can I use the same functions as in the Go example and simply adapt the code like in the following example Python example?
When I look at the Go example , there is parameters about the multicast session and fragmentation session but I can’t find any information about the firmware binary I want to send over this session. What should I do to chose this file?

Thank’s in advance for your reply

Did you get this sorted? Sorry I can’t be much help with porting to python and using grpc, but I suspect there are some examples our there and using the downlink example you posted is a good start.

The data for your firmware binary is sent as the “Payload” member of the Deployment method. I basically did this:

payload, err := ioutil.ReadFile("deltaFw-test.bin")
if err != nil {
    panic(err)
}

Then, in the deployment object:

Payload:                    payload,

instead of the make([]byte, 100)

don’t forget “io/ioutil” in the import section