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.

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

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.2.3.tar.gz (8.0 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.2.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: botcall_print-0.2.3.tar.gz
  • Upload date:
  • Size: 8.0 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.2.3.tar.gz
Algorithm Hash digest
SHA256 b8ef9b6fc802172a226c235fe035c1e911808267a36a6e3a9f6fa9c9080bddb3
MD5 bd38f0fbf2048768d61a16680546e77c
BLAKE2b-256 8087b4d4c48e63440a942eaedd449d879a79e6473fed8533f526dfdeed7dfa81

See more details on using hashes here.

File details

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

File metadata

  • Download URL: botcall_print-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.3 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.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c0dc4f1e36801b042c73df565b1d46d15f1f0f5d4e2d614cbbc1d3125c5c12e3
MD5 636fbfe81a55ca93ff0ab60aa3eb9d39
BLAKE2b-256 0e2a9e889488f01316539e2c05bee9e67e9c3ad7221135f554133d6c581a6e29

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