mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-05-07 05:44:28 +02:00
438 lines
14 KiB
Plaintext
438 lines
14 KiB
Plaintext
#config.ini
|
|
# type can be serial, tcp, or ble
|
|
# port is the serial port to use, commented out will try to auto-detect
|
|
# hostname is the IP/DNS and port for tcp type default is host:4403
|
|
# mac is the MAC address of the device to connect to for ble type
|
|
|
|
[interface]
|
|
type = serial
|
|
port = /dev/ttyACM0
|
|
# port = /dev/ttyUSB0
|
|
# hostname = meshtastic.local
|
|
# mac = 00:11:22:33:44:55
|
|
|
|
# Additional interface for multi radio support
|
|
[interface2]
|
|
enabled = False
|
|
type = serial
|
|
port = /dev/ttyUSB0
|
|
# port = /dev/ttyACM1
|
|
# port = COM1
|
|
# hostname = localhost
|
|
# mac = 00:11:22:33:44:55
|
|
|
|
# example, the third interface would be [interface3] up to 9
|
|
|
|
[general]
|
|
# if False will respond on all channels but the default channel
|
|
respond_by_dm_only = True
|
|
# Allows auto-ping feature in a channel, False forces to 1 ping only
|
|
autoPingInChannel = False
|
|
# defaultChannel is the meshtastic default public channel, e.g. LongFast (if none use -1)
|
|
defaultChannel = 0
|
|
# ignoreDefaultChannel, the bot will ignore the default channel set above
|
|
ignoreDefaultChannel = False
|
|
# ignoreChannels is a comma separated list of channels to ignore, e.g. 4,5
|
|
ignoreChannels =
|
|
# require ! to be the first character in a command
|
|
cmdBang = False
|
|
# require explicit command, the message will only be processed if it starts with a command word
|
|
explicitCmd = True
|
|
# list of favorite nodes numbers ex: 2813308004,4258675309 used by script/addFav.py
|
|
favoriteNodeList =
|
|
|
|
# motd is reset to this value on boot
|
|
motd = Thanks for using MeshBOT! Have a good day!
|
|
welcome_message = MeshBot, here for you like a friend who is not. Try sending: ping @foo or, cmd
|
|
|
|
# whoami
|
|
whoami = True
|
|
|
|
# enable or disable the Joke module
|
|
DadJokes = True
|
|
DadJokesEmoji = False
|
|
|
|
# enable or disable the Solar module
|
|
spaceWeather = True
|
|
|
|
# enable or disable the RSS module, and truncate the story
|
|
rssEnable = True
|
|
rssFeedURL = http://www.hackaday.com/rss.xml,http://rss.slashdot.org/Slashdot/slashdotMain,http://www.reddit.com/r/meshtastic/.rss
|
|
# RSS feed names must match the order of the URLs above, default is used if no match
|
|
rssFeedNames = default,slashdot,mesh
|
|
rssMaxItems = 3
|
|
rssTruncate = 100
|
|
|
|
# enable or disable the wikipedia search module
|
|
wikipedia = True
|
|
# Use local Kiwix server instead of online Wikipedia
|
|
# Set to False to use online Wikipedia, or provide Kiwix server URL
|
|
useKiwixServer = False
|
|
# Kiwix server URL (e.g., http://127.0.0.1:8080)
|
|
kiwixURL = http://127.0.0.1:8080
|
|
# Kiwix library name (e.g., wikipedia_en_100_nopic_2025-09)
|
|
kiwixLibraryName = wikipedia_en_100_nopic_2025-09
|
|
|
|
# Enable ollama LLM see more at https://ollama.com
|
|
ollama = False
|
|
# Ollama model to use (defaults to gemma3:270m) gemma2 is good for older SYSTEM prompt
|
|
# ollamaModel = gemma3:latest
|
|
# ollamaModel = gemma2:2b
|
|
# server instance to use (defaults to local machine install)
|
|
ollamaHostName = http://localhost:11434
|
|
|
|
# Produce LLM replies to messages that aren't commands?
|
|
# If False, the LLM only replies to the "ask:" and "askai" commands.
|
|
llmReplyToNonCommands = True
|
|
# if True, the input is sent raw to the LLM, if False uses SYSTEM prompt
|
|
rawLLMQuery = True
|
|
|
|
# Enable Wikipedia/Kiwix integration with LLM for RAG (Retrieval Augmented Generation)
|
|
# When enabled, LLM will automatically search Wikipedia/Kiwix and include context in responses
|
|
llmUseWikiContext = False
|
|
|
|
# Use OpenWebUI instead of direct Ollama API (enables advanced RAG features)
|
|
useOpenWebUI = False
|
|
# OpenWebUI server URL (e.g., http://localhost:3000)
|
|
openWebUIURL = http://localhost:3000
|
|
# OpenWebUI API key/token (required when useOpenWebUI is True)
|
|
openWebUIAPIKey =
|
|
|
|
# StoreForward Enabled and Limits
|
|
StoreForward = True
|
|
StoreLimit = 3
|
|
reverseSF = False
|
|
|
|
# history command
|
|
enableCmdHistory = True
|
|
# command history ignore list ex: 2813308004,4258675309
|
|
lheardCmdIgnoreNodes =
|
|
|
|
# 24 hour clock
|
|
zuluTime = False
|
|
# wait time for URL requests
|
|
urlTimeout = 15
|
|
|
|
# logging to file of the non Bot messages
|
|
LogMessagesToFile = False
|
|
# Logging of system messages to file
|
|
SyslogToFile = True
|
|
# logging level for the bot (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
|
sysloglevel = DEBUG
|
|
# Number of log files to keep in days, 0 to keep all
|
|
log_backup_count = 32
|
|
|
|
#Do not retry enabling interface if it fails, just exit to let OS restart the bot
|
|
dont_retry_disconnect = False
|
|
|
|
#echo command, will echo back your message as the bot
|
|
enableEcho = False
|
|
# command will only echo 1:1 if sent on this channel, otherwise it will prepend @yourname
|
|
echoChannel = 9
|
|
|
|
[emergencyHandler]
|
|
# enable or disable the emergency response handler
|
|
enabled = False
|
|
# channel to send a message to when the emergency handler is triggered
|
|
alert_channel = 2
|
|
alert_interface = 1
|
|
|
|
[sentry]
|
|
# detect anyone close to the bot
|
|
SentryEnabled = True
|
|
# device interface and channel to send the alert message to
|
|
SentryInterface = 1
|
|
SentryChannel = 2
|
|
emailSentryAlerts = False
|
|
# Enable detection sensor alert, requires external GPIO sensor connected to node
|
|
detectionSensorAlert = False
|
|
|
|
# list of ignored nodes numbers ex: 2813308004,4258675309
|
|
sentryIgnoreList =
|
|
# list of watched nodes numbers ex: 2813308004,4258675309
|
|
sentryWatchList =
|
|
|
|
# radius in meters to detect someone close to the bot
|
|
SentryRadius = 100
|
|
# holdoff time multiplied by seconds(20) of the watchdog
|
|
SentryHoldoff = 9
|
|
|
|
# Enable running external shell command when sentry alert is triggered
|
|
cmdShellSentryAlerts = False
|
|
# External shell command to run when sentry alert is triggered
|
|
sentryAlertNear = sentry_alert_near.sh
|
|
sentryAlertAway = sentry_alert_away.sh
|
|
|
|
# HighFlying Node alert
|
|
highFlyingAlert = True
|
|
# Altitude in meters to trigger the alert
|
|
highFlyingAlertAltitude = 2000
|
|
# check with OpenSkyNetwork if highfly detected for aircraft
|
|
highflyOpenskynetwork = True
|
|
# Channel to send Alert when the high flying node is detected
|
|
highFlyingAlertInterface = 1
|
|
# to disable OTA alert set to unused channel like 9
|
|
highFlyingAlertChannel = 2
|
|
# list of nodes numbers to ignore high flying alert ex: 2813308004,4258675309
|
|
highFlyingIgnoreList =
|
|
|
|
[bbs]
|
|
enabled = True
|
|
# list of banned nodes numbers ex: 2813308004,4258675309
|
|
bbs_ban_list =
|
|
# list of admin nodes numbers ex: 2813308004,4258675309
|
|
bbs_admin_list =
|
|
# enable bbs synchronization with other nodes
|
|
bbslink_enabled = False
|
|
# list of whitelisted nodes numbers ex: 2813308004,4258675309 empty list allows all
|
|
bbslink_whitelist =
|
|
# enable API script access (increases disk i/o)
|
|
bbsAPI_enabled = False
|
|
|
|
# location module
|
|
[location]
|
|
enabled = True
|
|
lat = 48.50
|
|
lon = -123.0
|
|
fuzzConfigLocation = True
|
|
fuzzItAll = False
|
|
|
|
# Default to metric units rather than imperial
|
|
useMetric = False
|
|
|
|
# repeaterList lookup location (rbook / artsci / False)
|
|
repeaterLookup = rbook
|
|
|
|
# NOAA weather forecast days
|
|
NOAAforecastDuration = 3
|
|
# number of weather alerts to display
|
|
NOAAalertCount = 2
|
|
|
|
# use Open-Meteo API for weather data not NOAA useful for non US locations
|
|
UseMeteoWxAPI = False
|
|
|
|
# NOAA Coastal Data Enable NOAA Coastal Waters Forecasts and Tide
|
|
coastalEnabled = False
|
|
# Find the correct costal weather directory at https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/
|
|
# pz = Puget Sound, ph = Honolulu HI, gm = Florida Keys, pk = Alaska
|
|
# this map can help https://www.weather.gov/marine select location and then look at the 'Forecast-by-Zone Map'
|
|
# myCoastalZone is the .txt file with the forecast data
|
|
myCoastalZone = https://tgftp.nws.noaa.gov/data/forecasts/marine/coastal/pz/pzz135.txt
|
|
# number of data points to return, default is 3
|
|
coastalForecastDays = 3
|
|
|
|
# NOAA USGS Hydrology river identifiers, LID or USGS ID https://waterdata.usgs.gov 12484500 Columbia River at The Dalles, OR
|
|
# for multiple rivers use comma separated list e.g. 12484500,14105700
|
|
riverList =
|
|
|
|
# NOAA EAS Alert Broadcast
|
|
wxAlertBroadcastEnabled = False
|
|
# Enable Ignore any message that includes following word list
|
|
ignoreEASenable = False
|
|
ignoreEASwords = test,advisory
|
|
# EAS Alert Broadcast Channels
|
|
wxAlertBroadcastCh = 2
|
|
# Add extra location to the weather alert
|
|
enableExtraLocationWx = False
|
|
|
|
# Goverment Alert Broadcast defaults to FEMA IPAWS
|
|
eAlertBroadcastEnabled = False
|
|
# comma separated list of FIPS codes to trigger local alert. find your FIPS codes at https://en.wikipedia.org/wiki/Federal_Information_Processing_Standard_state_code
|
|
myFIPSList = 57,58,53
|
|
# find your SAME https://www.weather.gov/nwr/counties comma separated list of SAME code to further refine local alert.
|
|
mySAMEList = 053029,053073
|
|
# Goverment Alert Broadcast Channels
|
|
eAlertBroadcastCh = 2
|
|
# Enable Ignore, headline that includes following word list
|
|
ignoreFEMAenable = True
|
|
ignoreFEMAwords = test,exercise
|
|
|
|
# USGS Volcano alerts Enable USGS Volcano Alert Broadcast
|
|
volcanoAlertBroadcastEnabled = False
|
|
volcanoAlertBroadcastCh = 2
|
|
# Enable Ignore any message that includes following word list
|
|
ignoreUSGSEnable = False
|
|
ignoreUSGSWords = test,advisory
|
|
|
|
# Use DE Alert Broadcast Data
|
|
enableDEalerts = False
|
|
# comma separated list of regional codes trigger local alert.
|
|
# find your regional codet at https://www.xrepository.de/api/xrepository/urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs_2021-07-31/download/Regionalschl_ssel_2021-07-31.json
|
|
myRegionalKeysDE = 110000000000,120510000000
|
|
|
|
# Satalite Pass Prediction
|
|
# Register for free API https://www.n2yo.com/login/ personal data page at bottom 'Are you developer?'
|
|
n2yoAPIKey =
|
|
# NORAD list https://www.n2yo.com/satellites/
|
|
satList = 25544,7530
|
|
|
|
# CheckList Checkin/Checkout
|
|
[checklist]
|
|
enabled = False
|
|
checklist_db = data/checklist.db
|
|
reverse_in_out = False
|
|
|
|
[qrz]
|
|
# QRZ Hello to new nodes with message
|
|
enabled = False
|
|
qrz_db = data/qrz.db
|
|
qrz_hello_string = "MeshBot says Hello! DM for more info."
|
|
# Training mode will not send the hello message to new nodes
|
|
training = True
|
|
|
|
# repeater module
|
|
[repeater]
|
|
enabled = False
|
|
# list of repeater channels ex: 2,3 which will be consumed
|
|
# and rebroadcasted on the same channel on the other device/node/interface
|
|
# with great power comes great responsibility, danger could be lurking in use of this feature
|
|
# if you have the two nodes on the same radio configurations, you could create a feedback loop
|
|
repeater_channels =
|
|
|
|
[scheduler]
|
|
# enable or disable the scheduler module
|
|
enabled = False
|
|
# interface to send the message to
|
|
interface = 1
|
|
# channel to send the message to
|
|
channel = 2
|
|
message = "MeshBot says Hello! DM for more info."
|
|
# enable overides the above and uses the motd as the message
|
|
schedulerMotd = False
|
|
# value can be min,hour,day,mon,tue,wed,thu,fri,sat,sun.
|
|
# value can also be 'joke' (min/interval) or 'weather' (time/day) or 'link' (hour/interval) for special auto messages
|
|
# 'custom' for module/scheduler.py custom schedule examples
|
|
value =
|
|
# interval to use when time is not set (e.g. every 2 days)
|
|
interval =
|
|
# time of day in 24:00 hour format when value is 'day' and interval is not set
|
|
time =
|
|
|
|
[radioMon]
|
|
# using Hamlib rig control will monitor and alert on channel use
|
|
enabled = False
|
|
rigControlServerAddress = localhost:4532
|
|
dxspotter_enabled = True
|
|
# device interface to send the message to
|
|
sigWatchBroadcastInterface = 1
|
|
# broadcast channel can also be a comma separated list of channels
|
|
sigWatchBroadcastCh = 2
|
|
# minimum SNR as reported by radio via hamlib
|
|
signalDetectionThreshold = -10
|
|
# hold time for high SNR
|
|
signalHoldTime = 10
|
|
# the following are combined to reset the monitor
|
|
signalCooldown = 5
|
|
signalCycleLimit = 5
|
|
# enable VOX detection using default input
|
|
voxDetectionEnabled = False
|
|
# description to use in the alert message
|
|
voxDescription = VOX
|
|
useLocalVoxModel = False
|
|
voxLanguage = en-us
|
|
voxInputDevice = default
|
|
voxOnTrapList = True
|
|
voxTrapList = chirpy
|
|
voxEnableCmd = True
|
|
|
|
|
|
[fileMon]
|
|
filemon_enabled = False
|
|
# text file to monitor for changes
|
|
file_path = alert.txt
|
|
# channel to send the message to can be 2,3 multiple channels comma separated
|
|
broadcastCh = 2
|
|
|
|
# news command will return the contents of a text file
|
|
enable_read_news = False
|
|
news_file_path = ../data/news.txt
|
|
# only return a single random line from the news file
|
|
news_random_line = False
|
|
|
|
# enable the use of exernal shell commands, this enables some data in `sysinfo`
|
|
enable_runShellCmd = False
|
|
# if runShellCmd and you think it is safe to allow the x: command to run
|
|
# direct shell command handler the x: command in DMs
|
|
allowXcmd = False
|
|
# Enable 2 factor authentication for x: commands
|
|
2factor_enabled = True
|
|
# time in seconds to wait for the correct 2FA answer
|
|
2factor_timeout = 100
|
|
|
|
[smtp]
|
|
# enable or disable the SMTP module
|
|
enableSMTP = False
|
|
# enable or disable the IMAP module for inbound email
|
|
enableImap = False
|
|
# list of Sysop Emails seperate with commas
|
|
sysopEmails =
|
|
SMTP_SERVER = smtp.gmail.com
|
|
# 587 SMTP over TLS/STARTTLS, 25 legacy SMTP, 465 SMTP over SSL
|
|
SMTP_PORT = 587
|
|
# Sender email: be mindful of public access, don't use your personal email
|
|
FROM_EMAIL = none@gmail.com
|
|
SMTP_AUTH = True
|
|
SMTP_USERNAME = none@gmail.com
|
|
SMTP_PASSWORD = none
|
|
EMAIL_SUBJECT = Meshtastic✉️
|
|
|
|
# IMAP not implimented yet
|
|
IMAP_SERVER = imap.gmail.com
|
|
# 993 IMAP over TLS/SSL, 143 legacy IMAP
|
|
IMAP_PORT = 993
|
|
# IMAP login usually same as SMTP
|
|
IMAP_USERNAME = none@gmail.com
|
|
IMAP_PASSWORD = none
|
|
IMAP_FOLDER = inbox
|
|
|
|
[games]
|
|
# if hop limit for the user exceeds this value, the message will be dropped
|
|
game_hop_limit = 5
|
|
disable_emojis = False
|
|
# enable or disable the games module(s)
|
|
dopeWars = True
|
|
lemonade = True
|
|
blackjack = True
|
|
videopoker = True
|
|
mastermind = True
|
|
golfsim = True
|
|
hangman = True
|
|
hamtest = True
|
|
tictactoe = True
|
|
wordOfTheDay = True
|
|
|
|
# enable or disable the quiz game module questions are in data/quiz.json
|
|
quiz = False
|
|
|
|
# enable or disable the survey game module questions are in data/survey/*_survey.json
|
|
survey = False
|
|
# this is the default survey to use when command givcen, from data/survey/example_survey.json
|
|
defaultSurvey = example
|
|
# Whether to record user ID in responses
|
|
surveyRecordID=True
|
|
# Whether to record location on start of survey
|
|
surveyRecordLocation=True
|
|
|
|
[messagingSettings]
|
|
# delay in seconds for response to avoid message collision /throttling
|
|
responseDelay = 2.2
|
|
# delay in seconds for splits in messages to avoid message collision /throttling
|
|
splitDelay = 2.5
|
|
# message chunk size in charcters, chunkr allows exceeding by 3 characters
|
|
MESSAGE_CHUNK_SIZE = 160
|
|
# Request Acknowledgement of message OTA
|
|
wantAck = False
|
|
# Max limit buffer for radio testing in bytes
|
|
maxBuffer = 200
|
|
#Enable Extra logging of Hop count data
|
|
enableHopLogs = False
|
|
# Noisy Node Telemetry Logging and packet threshold
|
|
noisyNodeLogging = False
|
|
noisyTelemetryLimit = 5
|
|
logMetaStats = True
|
|
# Enable detailed packet logging all packets
|
|
DEBUGpacket = False
|
|
# metaPacket detailed logging, the filter negates the port ID
|
|
debugMetadata = False
|
|
metadataFilter = TELEMETRY_APP,POSITION_APP
|