LoRaWAN-Signal-Mapping/server/settings.default.toml

108 lines
3.8 KiB
TOML

# Default settings file.
#
# **********************************************************
# ***************** DO NOT EDIT THIS FILE. *****************
# **********************************************************
# Instead edit ../settings.toml (or create it if it doesn't exist yet).
program_name = "LoRaWAN Signal Mapper"
version = "v0.1"
description = "assists in mapping LoRaWAN signal coverage"
[database]
### Database settings ###
# The path to the sqlite database file. If it doesn't exist it will be created.
filename = "lorawan.sqlite"
# The options to pass to better-sqlite3. You probably don't need to change this.
[database.options]
[ttn]
### The Things Network settings ###
# The host to connect to via MQTT.
# See https://www.thethingsnetwork.org/docs/applications/mqtt/api.html
# and also "Application Overview -> Handler"
host = "eu.thethings.network"
# The port number to connect on.
# The Things Network uses 1883 for plain-text, and 8883 for TLS.
port = 8883
# Whether to use TLS or not.
tls = true
# The id of The Things Network application to connect with.
# Basically your application's name. Get this from the things network
# console - e.g. "lorawan-signal-mapping".
app_id = "CHANGE_THIS"
# The access key to connect to The Things Network with.
# Get this from the TTN console too. Click on your application, scroll to the
# "access keys" section at the bottom of the page, and copy the value you see
# there.
access_key = "CHANGE_THIS"
# The additional encryption key, in hex, generated when setting up the IoT device.
# This is used as an exrtra layer of encryption to ensure that The Things Network does not have access to the decrypted data.
encryption_key = "CHANGE_THIS"
# A list of devices to monitor.
# If a device isn't specified here, then we won't hear messages from it.
# FUTURE: Automatically fetch a list of devices from the TTN API
devices = [
"CHANGE_THIS"
]
[ai]
# Settings relating to the training of the AI.
# TODO: Implement environment variable support
# Note that a number of these settings can also be specified by environment variables, to aid with fiddling with the parameters to find the right settings.
# The radius around a positive result to zap negative results.
# This helps to remove false-nagative readings, to improve the AI's ability to
# accurately predict the actual signal strength.
false_negative_zap_radius = 450
# Whether to actually zap false negatives or not.
# Useful when you want to... erm.... see why the zapping is necessary?
do_zap_false_negatives = true
# The architecture of the neural network, as an arary of integers.
# Each integer represents the number of nodes in a layer of the neural network.
network_arch = [ 512 ]
# The number of epochs to train for.
epochs = 1000
# Cut training short if the mean squared error drops below
# this value
error_threshold = 0.0001
# The learning rate that the neural networks should learn at
learning_rate = 0.1
# The momentum term to use when learning
momentum = 0.1
# Either "split" or "unified".
# Describes the mode of training for the AIs.
# In split mode (the default), 1 AI is trained for each of the gateways detected.
# In unified mode, we train 1 AI that predict everything.
mode = "split"
# The directory to output trained AIs to, relative to the repository root.
output_directory = "app/ais/"
[logging]
# The format the date displayed when logging things should take.
# Allowed values: relative (e.g like when a Linux machine boots), absolute (e.g. like Nginx server logs), none (omits it entirely))
date_display_mode = "relative"
# Whether we should be verbose and log a bunch of stuff to the console.
# Disabled by default, but useful for debugging.
verbose = false
# Whether we should output ANSI escape sequences to colourise the output or not.
# Defaults to true, but you should turn it off if you're using syslog.
colour = true