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.2.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.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: botcall_print-0.2.2.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.2.tar.gz
Algorithm Hash digest
SHA256 890ddf5ded3e111fbb8b0977634e667be36bc3b001c0ba28f661ec0eee7176fc
MD5 01ccac9990c04fc81efc943c435d0eec
BLAKE2b-256 b47e10032b6810e71bfb8e97dd860e8275bd9ccef04af4aea4ec59ddf6a66097

See more details on using hashes here.

File details

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

File metadata

  • Download URL: botcall_print-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 8.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f0ce81420b7b19b43b442af8a4b1208d81ee9959cb72f72cc4584ae0b75a7546
MD5 321f9a600ddca300d55779022c5821fe
BLAKE2b-256 3b0048a4b2958d326d5552d5bc0c8532606ec3754fa573952c7b8d9080733809

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