Skip to main content

Print daemon for botcall/printgif - receive print jobs from the cloud

Project description

botcall-print

Local print daemon for botcall. Receives print jobs from the cloud and sends them to your USB thermal printer.

Prerequisites

Linux (Raspberry Pi, etc.)

Install USB libraries before installing botcall-print:

sudo apt install libusb-1.0-0-dev python3-libusb1
pip install pyusb

macOS

brew install libusb
pip install pyusb

Installation

pip install botcall-print

Or install from source:

cd clients/print-daemon
pip install -e .

Setup

  1. Get your botcall API key from https://botcall.io
  2. Configure the daemon:
botcall-print setup
# Enter your API key when prompted
  1. Test your printer:
botcall-print test "Hello from botcall!"
  1. Start the daemon:
botcall-print daemon

Running as a Service

macOS (launchd)

# Create launch agent
cat > ~/Library/LaunchAgents/io.botcall.print.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>io.botcall.print</string>
    <key>ProgramArguments</key>
    <array>
        <string>$(which botcall-print)</string>
        <string>daemon</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
EOF

# Load it
launchctl load ~/Library/LaunchAgents/io.botcall.print.plist

Linux (systemd)

# Create service file
sudo cat > /etc/systemd/system/botcall-print.service << EOF
[Unit]
Description=botcall print daemon
After=network.target

[Service]
Type=simple
User=$USER
ExecStart=$(which botcall-print) daemon
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# Enable and start
sudo systemctl enable botcall-print
sudo systemctl start botcall-print

Commands

Command Description
botcall-print setup Configure API key
botcall-print daemon Start listening for print jobs
botcall-print test "text" Test print some text
botcall-print status Show configuration and printer status

Supported Printers

Any ESC/POS compatible USB thermal printer. Common models:

  • Epson TM-T20/T88
  • Star TSP100/TSP650
  • Generic 58mm/80mm receipt printers (ZJ-58, XP-58, etc.)

Troubleshooting

"Printing with USB connection requires a usb library"

Install USB dependencies:

# Linux
sudo apt install libusb-1.0-0-dev python3-libusb1
pip install pyusb

# macOS
brew install libusb
pip install pyusb

Printer not found

Check USB connection:

# macOS
system_profiler SPUSBDataType | grep -A5 -i printer

# Linux
lsusb | grep -i printer

Permission denied (Linux)

Add udev rule:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0416", MODE="0666"' | sudo tee /etc/udev/rules.d/99-thermal-printer.rules
sudo udevadm control --reload-rules

Slow/corrupted prints on Mac

Known macOS USB driver issue. The daemon includes chunking to work around this, but very image-heavy prints may still have issues. Consider using a Raspberry Pi for best results.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

botcall_print-0.4.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

botcall_print-0.4.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file botcall_print-0.4.1.tar.gz.

File metadata

  • Download URL: botcall_print-0.4.1.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for botcall_print-0.4.1.tar.gz
Algorithm Hash digest
SHA256 9ebc6b52b08fa908845ecf5e8269b193743e8460e789b15298d84af03fb38ffc
MD5 87ddc231a21833a49b0e402b07370a1a
BLAKE2b-256 e13eeac4acac3f06a79918842f2579d3883a39c834d519bf48cd28c417b77a42

See more details on using hashes here.

File details

Details for the file botcall_print-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: botcall_print-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for botcall_print-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 37689a7cf5fe7228abaa400d94cfcf52b74e67c438ba384f441cbb0b1cbf852f
MD5 9ba0a2064af6e0ff9858ccf719d352ca
BLAKE2b-256 a83a3679fe53d2bfdcabf1ceeecb4df60141c933fbe36d3881c9a66c9dbf49d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page