From 7ab3f8f4d2e1a4a309863ea5651f34c4f46e04f1 Mon Sep 17 00:00:00 2001 From: Tobias Leuschner Date: Sat, 7 Mar 2026 12:25:47 +0100 Subject: [PATCH] fix: remove container bluez, use host BlueZ via D-Bus, set DBUS_SYSTEM_BUS_ADDRESS --- fichero_printer/Dockerfile | 8 ++++---- fichero_printer/config.yaml | 2 +- fichero_printer/run.sh | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/fichero_printer/Dockerfile b/fichero_printer/Dockerfile index 1c243d3..9b9a31a 100644 --- a/fichero_printer/Dockerfile +++ b/fichero_printer/Dockerfile @@ -1,17 +1,17 @@ ARG BUILD_FROM FROM $BUILD_FROM -# Python 3, BlueZ and pre-compiled Alpine packages (no C compiler needed) +# Only dbus-dev needed to talk to the HOST BlueZ via D-Bus (host_dbus: true). +# Do NOT install bluez here - we use the host BlueZ, not our own. RUN apk add --no-cache \ bash \ python3 \ py3-pip \ py3-numpy \ py3-pillow \ - bluez \ - dbus + dbus-dev -# Pure-Python packages only (no compilation required) +# Pure-Python packages (bleak uses dbus-fast internally, no C compiler needed) RUN pip3 install --no-cache-dir --break-system-packages \ "bleak>=0.21" \ "fastapi>=0.111" \ diff --git a/fichero_printer/config.yaml b/fichero_printer/config.yaml index a7854c7..696a7e5 100644 --- a/fichero_printer/config.yaml +++ b/fichero_printer/config.yaml @@ -1,5 +1,5 @@ name: "Fichero Printer" -version: "0.1.1" +version: "0.1.2" slug: "fichero_printer" description: "REST API for the Fichero D11s (AiYin) thermal label printer over Bluetooth" url: "https://git.leuschner.dev/Tobias/Fichero" diff --git a/fichero_printer/run.sh b/fichero_printer/run.sh index 08bde2f..f3ecb24 100644 --- a/fichero_printer/run.sh +++ b/fichero_printer/run.sh @@ -4,6 +4,9 @@ set -e CONFIG_PATH="/data/options.json" +# Use the host BlueZ via D-Bus (requires host_dbus: true in config.yaml) +export DBUS_SYSTEM_BUS_ADDRESS="unix:path=/run/dbus/system_bus_socket" + # Read add-on options from the HA-provided JSON file using Python (already installed). PORT=$(python3 -c "import json; d=json.load(open('${CONFIG_PATH}')); print(d.get('port', 8765))") TRANSPORT=$(python3 -c "import json; d=json.load(open('${CONFIG_PATH}')); print(d.get('transport', 'ble'))")