- Implemented a new module for the Fichero D11s thermal label printer, including BLE and Classic Bluetooth interfaces. - Created a REST API using FastAPI to manage printer status, info, and printing tasks (text and images). - Developed a CLI for direct printer interaction, allowing users to print text and images, check status, and modify settings. - Added image processing capabilities for converting text and images to the required format for printing. - Introduced error handling for printer operations and connection management. - Included a shell script for running the API server with configurable parameters. - Added English translations for configuration options. - Created a repository metadata file for project management.
30 lines
941 B
Bash
30 lines
941 B
Bash
#!/usr/bin/with-contenv bashio
|
||
# shellcheck shell=bash
|
||
set -e
|
||
|
||
declare port
|
||
declare ble_address
|
||
declare transport
|
||
declare channel
|
||
|
||
port=$(bashio::config 'port')
|
||
transport=$(bashio::config 'transport')
|
||
channel=$(bashio::config 'channel')
|
||
|
||
# Pass connection settings to the Python module via environment variables.
|
||
# The module reads these at import time, so they must be exported before uvicorn
|
||
# imports fichero.api.
|
||
export FICHERO_TRANSPORT="${transport}"
|
||
export FICHERO_CHANNEL="${channel}"
|
||
|
||
ble_address=$(bashio::config 'ble_address')
|
||
if [ -n "${ble_address}" ]; then
|
||
export FICHERO_ADDR="${ble_address}"
|
||
bashio::log.info "Using fixed Bluetooth address: ${ble_address}"
|
||
else
|
||
bashio::log.info "No address configured – will auto-scan for printer on first request."
|
||
fi
|
||
|
||
bashio::log.info "Starting Fichero Printer API on 0.0.0.0:${port} (transport: ${transport})..."
|
||
exec uvicorn fichero.api:app --host 0.0.0.0 --port "${port}"
|