Ordnung im Gadget-Chaos mit Homebox und Home Assistant

Vielleicht gehรถrst du auch zu den Glรผcklichen, die ihre guten Vorsรคtze fรผr das neue Jahr noch nicht an den Nagel gehรคngt haben. Bei mir steht dieses Jahr ein ganz spezielles Thema auf der Liste: Mein โ€žOrdnungs-Gameโ€œ zu verbessern. Damit meine ich nicht das klassische Aufrรคumen in der Wohnung โ€“ da bin ich ehrlich gesagt ein hoffnungsloser Fall. Es geht mir vielmehr um die Organisation all der Gerรคte, Gadgets und Smart-Home-Komponenten, die sich รผber die Zeit so ansammeln.

Das Problem kennst du sicher: Du kaufst ein neues Smart-Home-Gerรคt, nimmst es voller Vorfreude in Betrieb und bist glรผcklich. Doch was passiert, wenn das Teil nach einem Jahr den Geist aufgibt? Dann beginnt die nervige Suche. Wo habe ich es gekauft? Wo ist die Rechnung โ€“ digital oder noch auf Papier? Und habe ich sie รผberhaupt abgelegt? Wenn man mehrere identische Sensoren bei verschiedenen Hรคndlern gekauft hat, wird das Chaos perfekt.

Bei FuzzyMistborn habe ich dessen Lรถsung fรผr diese Herausforderung gesehen und meine baut auf der guten Anleitung von FuzzyMistborn auf. Also vielen Dank, lieber FuzzyMistborn, fรผr das Teilen deines Setups!

Die Lรถsung: Homebox statt Zungenbrecher

Meine Wahl fรผr dieses Problem ist Homebox. Es ist ein Inventar- und Organisationssystem, das speziell fรผr Privatanwender entwickelt wurde. Es ist Open Source, schlank und lรคsst sich super einfach bedienen. Ich lasse Homebox als Docker-Container laufen, vรถllig losgelรถst von anderen Systemen. Du kannst darin dein komplettes Inventar in Kategorien, Standorte und Tags einteilen.

Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:

Follow Home Assistant
( 1038 Followers )
X

Follow Home Assistant

E-mail : *
* Ich stimme der Datenschutzerklรคrung zu!

Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!

Besonders praktisch ist die Mรถglichkeit, Bilder, Garantien, Preise und sogar Wartungsplรคne zu hinterlegen. So hast du im Ernstfall alle Infos an einem Ort. Homebox bietet zudem die Funktion, fรผr jedes Gerรคt ein Etikett mit einer eindeutigen ID und einem QR-Code zu erstellen. Scannst du diesen Code spรคter im lokalen Netzwerk, landest du sofort bei dem entsprechenden Eintrag in deiner Datenbank und hast alle Infos inklusive Rechnung parat.

Der smarte Workflow: Automatisch drucken mit dem Niimbot D110

Natรผrlich wollen wir die Etiketten nicht mรผhsam per Hand ausdrucken oder jedes Mal den PC verkabeln. Mein Ziel war es, von jedem beliebigen Gerรคt โ€“ egal ob Handy oder Tablet โ€“ in Homebox auf โ€žDruckenโ€œ zu klicken und das Label kommt wie von Geisterhand aus einem kleinen Drucker.

NIIMBOT Namensaufkleber Etikettendrucker, D110 Bluetooth...*
  • 1. Kompakter tragbarer NIIMBOT Etikettendrucker D110: Kleiner...
  • 2. Automatische Etikettenausrichtung: Beim Einschalten automatisch...

Dafรผr nutze ich den Niimbot D110. Das ist ein handlicher, akkubetriebener Bluetooth-Drucker, der kaum grรถรŸer als eine Zigarettenschachtel und mit ca. 18 Euro extrem erschwinglich ist. Dank einer passenden HACS-Integration lรคsst er sich direkt in Home Assistant einbinden.

So sieht das technische Setup aus

Der Prozess im Hintergrund ist eine Kombination aus einem รœberwachungsskript und Home Assistant. Zuerst aktivierst du in Homebox die Option โ€žServer-Druckโ€œ. Dadurch wird das Etikett beim Klick auf Drucken als PNG-Datei in einem lokalen Ordner gespeichert.

Mein Docker-Compose mit casaOs fรผr den Proof-of-Concept:

name: vibrant_gottlieb
services:
  main_app:
    cpu_shares: 10
    command: []
    container_name: homebox
    deploy:
      resources:
        limits:
          memory: 4096M
    environment:
      - HBOX_LABEL_MAKER_FONT_SIZE=24
      - HBOX_LABEL_MAKER_HEIGHT=96
      - HBOX_LABEL_MAKER_MARGIN=5
      - HBOX_LABEL_MAKER_PADDING=5
      - HBOX_LABEL_MAKER_PRINT_COMMAND=cp {{.FileName}} /labels/label.png
      - HBOX_LABEL_MAKER_WIDTH=320
      - HBOX_LOG_FORMAT=text
      - HBOX_LOG_LEVEL=info
      - HBOX_OPTIONS_ALLOW_ANALYTICS=false
      - HBOX_WEB_MAX_UPLOAD_SIZE=10
    hostname: homebox
    image: sysadminsmedia/homebox:latest
    labels:
      icon: https://raw.githubusercontent.com/sysadminsmedia/homebox/main/docs/public/lilbox.svg
    ports:
      - target: 7745
        published: "3100"
        protocol: tcp
    privileged: true
    restart: unless-stopped
    volumes:
      - type: bind
        source: /DATA/AppData/homebox/data
        target: /homebox-data
      - type: bind
        source: /DATA/AppData/homebox/labels
        target: /labels
    devices: []
    cap_add: []
    network_mode: bridge
x-casaos:
  author: self
  category: self
  hostname: ""
  icon: https://raw.githubusercontent.com/sysadminsmedia/homebox/main/docs/public/lilbox.svg
  index: /
  is_uncontrolled: false
  port_map: "3100"
  scheme: http
  store_app_id: vibrant_gottlieb
  title:
    custom: Homebox

Ein kleines Skript รผberwacht diesen Ordner permanent. Sobald eine neue Datei erscheint, wird diese als Payload via MQTT an Home Assistant gesendet. Bei mir heiรŸt das Skript monitor_homebox.sh und es beinhaltet folgenden Code:

#!/bin/bash

WATCH_DIR="/DATA/AppData/homebox/labels/"
MQTT_BROKER="192.168.1.15"
MQTT_USERNAME="DEIN-MQTT-USER"
MQTT_PASSWORD="DEIN_MQTT_PASSWORT"
MQTT_TOPIC="homebox/labels"

inotifywait -m -e close_write,moved_to "$WATCH_DIR" --format '%w%f' | 
while read FILE 
do
    if [[ "$FILE" == *.png ]]; then echo "Detected new PNG: $FILE"
        # Publish file via MQTT
        mosquitto_pub -h "$MQTT_BROKER" -u "$MQTT_USERNAME" -P "$MQTT_PASSWORD" -t "$MQTT_TOPIC" --ret>
    fi
echo "Sleep 10s"
sleep 10s
echo "calling webhook"
curl -X POST "http://192.168.1.15:8123/api/webhook/Niimbot-Webhook"
done

#taken from https://blog.fuzzymistborn.com/homebox-labels-over-mqtt/

Damit dieses Skript im Hintergrund stabil lรคuft, habe ich einen Linux Systemd Service angelegt (Achtung: Wie im Video vermerkt, nutze ich hier den User root, was alles andere als ideal ist!):

[Unit]
Description=Homebox Label Monitor Service
After=network.target

[Service]
ExecStart=/home/olli/scripts/monitor_homebox.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Die Brรผcke zu Home Assistant

In Home Assistant nutze ich einen kleinen Trick: Ich habe eine MQTT-Kamera angelegt. Diese lauscht auf das entsprechende Topic und zeigt immer das aktuellste Etikett als Bild-Entitรคt an. Die MQTT-Kamera definiert man durch folgenden Code in der configuration.yaml:

mqtt:
  - camera:
      - name: Homebox-Labels
        topic: homebox/labels

Da meine Automation partout nicht direkt auf die MQTT-Nachricht reagieren wollte, habe ich einen kleinen Workaround eingebaut: Das Skript (erster Code-Block hier im Beitrag) sendet nach dem Bild einen Webhook an Home Assistant, der die Automation โ€žanstupstโ€œ. Die Automation selbst nutzt dann die Aktion der Niimbot-Integration und schickt das Bild der Kamera-Entitรคt direkt an den Drucker.

Im YAML-Code sieht diese Automation wie folgt aus:

alias: Niimbot
description: ""
triggers:
  - trigger: webhook
    allowed_methods:
      - POST
      - PUT
      - GET
      - HEAD
    local_only: true
    webhook_id: Niimbot-Webhook
conditions: []
actions:
  - action: niimbot.print
    data:
      payload:
        - type: dlimg
          url: >-
            http://192.168.1.15:8123{{
            state_attr('camera.homebox_labels','entity_picture') }}
          x: 0
          "y": 0
          xsize: 320
          ysize: 96
      width: 320
      height: 96
      rotate: 90
      print_line_batch_size: 10
      wait_between_print_lines: 0.01
      density: 5
      preview: false
    target:
      device_id: 856517514963f51bc1002e523c3ddecd
mode: single

Fazit: Lohnt sich der Aufwand?

Zugegeben, das Setup hat ein paar Ecken und Kanten. Der Umweg รผber den Webhook ist nicht die eleganteste Lรถsung, und wenn der Drucker im Standby die Bluetooth-Verbindung verliert, geht der Druck ins Leere. Aber: Es funktioniert und ich mag es verdammt gerne! ๐Ÿ˜‰

Fรผr Gerรคte ab einem Wert von etwa 50 Euro ziehe ich das jetzt konsequent durch. Es ist ein groรŸartiges Gefรผhl, ein neues Gadget auszupacken, kurz in Homebox zu erfassen und Sekunden spรคter das fertige Label aufzukleben. Selbst wenn du kein Homebox nutzt, ist die Integration des Niimbot-Druckers in Home Assistant ein spannendes Projekt fรผr alle Bastler, denn theoretisch kann man damit alle mรถglichen Etiketten direkt aus Home Assistant drucken

NIIMBOT Namensaufkleber Etikettendrucker, D110 Bluetooth...*
  • 1. Kompakter tragbarer NIIMBOT Etikettendrucker D110: Kleiner...
  • 2. Automatische Etikettenausrichtung: Beim Einschalten automatisch...

Produktempfehlungen

1,49 EUR โ‚ฌ Rabatt SONOFF S60ZBTPF Zigbee Steckdose โ€“ Fernsteuerung...