mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-05-08 14:24:28 +02:00
11687cb7ba
this is a fail safe change to fuzzing the default location. This may change the way you use the bot today and should evaluate the change specifically test the auto alerts for proper data for emergency alerts etc.`fuzzConfigLocation = True`
408 lines
13 KiB
Plaintext
408 lines
13 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 address of the device to connect to for tcp type
|
|
# 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
|
|
# RSS feed names must match the order of the URLs above, default is used if no match
|
|
rssFeedNames = default,slashdot
|
|
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)
|
|
# ollamaModel = gemma3:latest
|
|
# 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 legacy template query
|
|
rawLLMQuery = True
|
|
|
|
# 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
|
|
emailSentryAlerts = False
|
|
# radius in meters to detect someone close to the bot
|
|
SentryRadius = 100
|
|
# device interface and channel to send the alert message to
|
|
SentryInterface = 1
|
|
SentryChannel = 2
|
|
# holdoff time multiplied by seconds(20) of the watchdog
|
|
SentryHoldoff = 9
|
|
# list of ignored nodes numbers ex: 2813308004,4258675309
|
|
sentryIgnoreList =
|
|
# Enable detection sensor alert, requires external sensor connected to node
|
|
detectionSensorAlert = False
|
|
|
|
# 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/
|
|
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 =
|
|
# 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
|
|
# 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
|
|
|
|
|
|
[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
|
|
|
|
# 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
|
|
# 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
|
|
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
|