This tool is included in the CLIENT install.
BotWave Server is a program designed to manage multiple BotWave clients, allowing for the upload and broadcast of audio files over FM radio using Raspberry Pi devices.
- Python >= 3.6
Warning
Warning: Using BotWave involves broadcasting signals which may be subject to local regulations and laws. It is your responsibility to ensure that your use of BotWave complies with all applicable legal requirements and regulations in your area. Unauthorized use of broadcasting equipment may result in legal consequences, including fines or penalties.
Safety Note: To minimize interference and stay within your intended frequency range, it is strongly recommended to use a band-pass filter when operating BotWave.
Liability: The author of BotWave is not responsible for any damage, loss, or legal issues that may arise from the use of this software. By using BotWave, you agree to accept all risks and liabilities associated with its operation and broadcasting capabilities.
Please exercise caution and ensure you have the proper permissions, equipment, and knowledge of regulations before using BotWave for broadcasting purposes.
We highly recommend using the official installer (Check the main README) -- If you don't want to or are not using a Linux distribution, find how to install it by yourself. (Tip: on windows, use wsl)
To start the BotWave Server, use the following command:
sudo bw-server [-h] [--host HOST] [--port PORT] [--fport FPORT] [--pk PK] [--handlers-dir HANDLERS_DIR] [--start-asap | --no-start-asap] [--skip-checks | --no-skip-checks] [--rc RC] [--config CONFIG] [--daemon | --no-daemon]--host: The host address to bind the server to (default: 0.0.0.0).--port: The port on which the server will listen (default: 9938).--fport: The port on which the server will listen for file transfers (default: 9921).--pk: Optional passkey for client authentication.--rc: Port for the remote CLI. You can connect remotely to your websocket server via botwave.dpip.lol. For an API documentation, check misc_doc/websocket.md.--handlers-dir: The directory to retrieve s_ handlers from (default:/opt/BotWave/handlers/)--skip-checks: Skip checking for protocol updates.--start-asap: Starts broadcasting as soon as possible. Can cause delay between different clients broadcasts.--daemon: Run in daemon mode (non-interactive).
sudo bw-client --host 0.0.0.0 --port 9938 --pk mypasskeytargets: Specifies the target clients. Can be 'all', a client ID, a hostname, or a comma-separated list of clients (client1,client2,etc).
start: Starts broadcasting on specified client(s).
- Usage: botwave> start <targets> <file> [freq] [loop] [ps] [rt] [pi]
stop: Stops broadcasting on specified client(s).
- Usage: botwave> stop <targets>
live: Start a live broadcast to client(s).
- Usage: botwave> live <all> [frequency] [ps] [rt] [pi]
queue: Manages the queue. See the Main/Queue system wiki page for more details.
- Usage: botwave> queue ?
sstv: Start broadcasting an image converted to SSTV. For modes see dnet/pySSTV.
- Usage: botwave> sstv <targets> <image path> [mode] [output wav name] [freq] [loop] [ps] [rt] [pi]
morse: Start broadcasting text converted to morse code.
- Usage: botwave> sstv <targets> <text|file path> [wpm] [freq] [loop] [ps] [rt] [pi]
list: Lists all connected clients.
- Usage: botwave> list
upload: Upload a file or a folder's files to specified client(s).
- Usage: botwave> upload <targets> <path/of/file.wav|path/of/folder/>
sync: Synchronize files across systems from a source.
- Usage: botwave> sync <targets|path/of/folder/> <target|path/of/folder/>
dl: Downloads a file from an external URL.
- Usage: botwave> dl <targets> <url>
lf: Lists broadcastable files on clients.
- Usage: botwave> lf <targets>
kick: Kicks specified client(s) from the server.
- Usage: botwave> kick <targets> [reason]
update: Request client(s) to update and restart.
- Usage: botwave> update <targets> [latest|<version>]
handlers: List all handlers or commands in a specific handler file.
- Usage: botwave> handlers [filename]
<: Run a shell command on the main OS.
- Usage: botwave> < <command>
|: Run a shell command and pipe each output line as a BotWave command.
- Usage: botwave> | <command>
get: Get one or more environment variable(s).
- Usage: botwave> get <keys|*>
set: Set an environment variable. (If immutable is 'true', the value cannot be changed without re-setting it as immutable. Editing those values is not recommended.)
- Usage: botwave> | <key> <value> [immutable]
status: Show server status, and optionally the broadcast status of client(s)
- Usage: botwave> status [targets]
exit: Stops and exit the BotWave server.
- Usage: botwave> exit
help: Shows the help.
- Usage: botwave> help
Warning
uploadcommand support is experimental. Your client / server connection may crash or act strange.sstvcommand modules are not installed by default. Install them with[sudo /opt/BotWave/venv/bin/]pip install pysstv numpy pillow
s_onready: When the server is ready (on startup).s_onstart: When a broadcast has been start.s_onstop: When a broadcast has been stopped (manually).s_onconnect: When a client connects to the server.s_ondisconnect: When a client disconnects form the server.s_onwsjoin: When a websocket client joins the server.s_onwsleave: When a websocket client leaves the server (buggy).
Check misc_doc/handlers.md for a better documentation.