# Schrank-Steuerung: Pick-to-Light am eigenen Werkzeugschrank – Schritt für Schritt

Ihr eigener „smarter“ Werkzeugschrank – ohne Lagerlift: Bei jeder Ausgabe leuchtet die LED an der Schublade des Werkzeugs und ein elektrisches Schloss gibt das Fach frei, bei der Rückgabe zeigt die LED, wohin das Werkzeug gehört. Dafür sitzt eine kleine Steuerung (ESP32, Bauteile für etwa 40–120 € je Schrank) im Schrank. Tulz und der Schrank verständigen sich über einen MQTT-Broker – einen kleinen Nachrichtendienst im Internet.

![So arbeiten Tulz und der Schrank zusammen: Befehle über den MQTT-Broker, keine Portfreigabe nötig](https://tulz.work/hilfe/bild/schrank-prinzip.webp?v=5832c420)

### In 8 Schritten zum leuchtenden Schrank

1. Lagerplätze für Schrank und Schubladen anlegen
2. MQTT-Broker wählen – beim Tulz-Broker ist nichts einzurichten
3. Broker in Tulz eintragen
4. Schrank anlegen
5. Fächer den Schubladen zuordnen
6. Bauteile besorgen und verdrahten
7. Firmware herunterladen und auf den ESP32 laden
8. Verbindung testen

Der Teil in Tulz dauert etwa 10 Minuten, die Firmware beim ersten Mal etwa 30 Minuten (ein eigener Broker noch einmal so viel), die Verdrahtung je nach Schrank ein bis zwei Stunden.

### Schritt 1: Lagerplätze für Schrank und Schubladen

Unter *Verwaltung → Lagerplätze* den Schrank als Lagerplatz anlegen (z. B. „Schrank 1 Halle 2“) und darunter je Schublade einen Unterplatz („Schublade 1“ bis „Schublade 8“). Jedes Werkzeug bekommt als Lagerplatz seine Schublade – oder einen Platz darunter wie „Schublade 3 › links“, der zählt automatisch mit. Wer seine Lagerplätze schon so eingerichtet hat, ist hier fertig.

### Schritt 2: Broker wählen

**Mit dem Tulz-Broker ist hier nichts zu tun.** Tulz stellt den Broker bereit: Beim Speichern der Schrank-Steuerung legt Tulz einen Zugang für Ihren Betrieb an, beim Anlegen jedes Schranks einen eigenen Zugang für den Schrank – sein Passwort steht später schon in der heruntergeladenen Firmware. Jeder Betrieb und jeder Schrank sieht nur seine eigenen Nachrichten. Weiter mit Schritt 3.

**Eigener Broker – nur, wenn Sie bewusst einen eigenen betreiben wollen** (oder das Auswahlfeld *Broker* unter *Einstellungen → Schrank-Steuerung* bei Ihnen fehlt): Tulz läuft im Internet, der Schrank in Ihrer Werkstatt – beide verbinden sich von sich aus mit dem Broker. Deshalb muss der Broker aus dem Internet erreichbar sein (keine Adresse im internen Netz wie 192.168.…), im Werkstatt-Router ist dagegen nichts freizugeben. Es passt jeder MQTT-Broker mit TLS auf Port 8883 und einem Benutzer, der auf das Themen-Präfix `tulz/<Betriebsnummer>` lesen und schreiben darf – zum Beispiel ein Cloud-Dienst wie EMQX Cloud (Tarif *Serverless* mit kostenlosem Kontingent; Spend Limit auf 0 lassen) oder ein eigener Mosquitto auf einem Server (`listener 8883`, Let's-Encrypt-Zertifikat als `certfile`/`keyfile`, `allow_anonymous false`, `password_file`; Port 8883 in der Firewall öffnen). Für Schritt 3 brauchen Sie dann Adresse, Port, Benutzername und Passwort des Brokers.

### Schritt 3: Broker in Tulz eintragen

**Mit dem Tulz-Broker:**

1. *Einstellungen* öffnen und im Abschnitt *Schnittstellen & Geräte* auf **Schrank-Steuerung** klicken.
2. Häkchen **Schrank-Steuerung einschalten** setzen, bei **Broker** „Tulz-Broker“ wählen und **Fach freigeben (Sekunden)** einstellen (0 = kein Schloss, nur Licht).
3. **Speichern** – Tulz legt den Zugang an und zeigt ihn mit Adresse und Themen-Präfix an. Fertig, weiter mit Schritt 4.

![Mit dem Tulz-Broker: einschalten, Broker wählen, speichern](https://tulz.work/hilfe/bild/schrank-plattform.webp?v=5cc19dd5)

**Mit eigenem Broker:**

1. *Einstellungen* öffnen und im Abschnitt *Schnittstellen & Geräte* auf **Schrank-Steuerung** klicken.
2. Häkchen **Schrank-Steuerung einschalten** setzen (gibt es das Feld **Broker**, dort „Eigener Broker“ wählen) und eintragen: **Broker-Adresse** (nur der Name, ohne `mqtt://` und ohne Port), **Port** 8883, **Verschlüsselung** „TLS (empfohlen)“, **Benutzername** und **Passwort** vom Broker.
3. **Themen-Präfix** leer lassen – dann gilt `tulz/<Betriebsnummer>`. **Fach freigeben (Sekunden)**: so lange bleibt ein Schloss nach der Ausgabe offen; 0 = kein Schloss, nur Licht.
4. **Speichern**. Tulz fragt einmal nach Ihrem eigenen Passwort, weil hier Zugangsdaten gespeichert werden. Das Broker-Passwort liegt danach verschlüsselt in Tulz; das Feld bleibt leer („gespeichert, leer lassen = behalten“).

![Einstellungen → Schnittstellen & Geräte → Schrank-Steuerung](https://tulz.work/hilfe/bild/schrank-einstellungen.webp?v=ac39555b)
![Broker-Zugang eintragen](https://tulz.work/hilfe/bild/schrank-broker.webp?v=a88faadf)

![Beim Speichern einmal mit dem eigenen Passwort bestätigen](https://tulz.work/hilfe/bild/schrank-bestaetigen.webp?v=8b5ac4eb)

### Schritt 4: Schrank anlegen

Rechts unter **Schrank anlegen**:

- **Name** – frei wählbar, z. B. „Schrank 1 Halle 2“
- **Geräte-Kennung** – z. B. `schrank-1` (Kleinbuchstaben, Ziffern, - und _). Sie steht später in der Firmware; nach dem Aufspielen nicht mehr ändern, sonst findet Tulz den Schrank nicht.
- **Lagerplatz des Schranks** – der Platz aus Schritt 1
- **Fächer** – Zahl der Schubladen bzw. LEDs (bis 64; Schlösser und Kontakte bis 8 je ESP32)

Mit **Anlegen** öffnet sich die Seite des Schranks. Beim Tulz-Broker bekommt der Schrank dabei automatisch seinen eigenen Zugang.

![Schrank anlegen](https://tulz.work/hilfe/bild/schrank-anlegen.webp?v=ff45ac70)

### Schritt 5: Fächer den Schubladen zuordnen

Auf der Schrankseite für jedes Fach die passende Schublade wählen und **Fächer speichern**. Fach 1 ist die erste LED an der Leiste, Fach 2 die zweite und so weiter. Werkzeuge in der Schublade oder in einem Platz darunter lösen das Fach aus – an den Werkzeugen selbst ändern Sie nichts. Die **Beschriftung** ist optional (sonst gilt der Name der Schublade).

![Fächer den Schubladen zuordnen](https://tulz.work/hilfe/bild/schrank-faecher.webp?v=dc7ec6a4)

### Schritt 6: Bauteile und Verdrahtung

![Stückliste für einen Schrank mit bis zu 8 Schubladen](https://tulz.work/hilfe/bild/schrank-teile.webp?v=8eef2c50)

![Verdrahtung am Beispiel von Fach 1 und Pinbelegung aller Fächer](https://tulz.work/hilfe/bild/schrank-verdrahtung.webp?v=420410c8)

1. **Strom:** 5-V-Netzteil an den ESP32 (5V bzw. VIN und GND) und an die LED-Leiste (+5V, GND). Den Kondensator 1000 µF direkt an der Leiste zwischen +5V und GND setzen (Minus-Seite an GND).
2. **LEDs:** GPIO 13 über den Widerstand 330 Ω an DIN der Leiste. Pfeilrichtung auf der Leiste beachten. Die erste LED gehört zu Fach 1 – die Leiste in Fachreihenfolge verlegen.
3. **Schubladenkontakte (optional):** je Schublade einen Reed-Kontakt zwischen den Pin aus der Tabelle und GND, den Magneten an die Schublade – bei geschlossener Schublade ist der Kontakt geschlossen.
4. **Schlösser (optional):** je Schloss ein MOSFET-Modul: SIG an den Pin aus der Tabelle, GND an GND, V+ an +12 V. Das Schloss kommt zwischen +12 V und OUT, dazu eine Freilaufdiode 1N4007 parallel zum Schloss (Ring an +12 V). Fail-Secure-Schlösser wählen: stromlos bleiben sie zu.
5. **Masse:** alle GND verbinden – 5-V-Netzteil, 12-V-Netzteil und ESP32.

Nicht verwenden: GPIO 0, 2 und 12 (Start-Pins), 6–11 (Speicher); 34–39 sind reine Eingänge ohne Pull-up. Der ESP32 kennt nur 2,4-GHz-WLAN.

### Schritt 7: Firmware aufspielen

1. Auf der Schrankseite **Firmware und Anleitung herunterladen (ZIP)** klicken. Das ZIP enthält das Programm `tulz-schrank.ino`, die Anleitung `LIESMICH.txt` und die Pinbelegung `Verdrahtung.txt`.
2. Die Arduino-Software (Arduino IDE 2) von arduino.cc installieren. Unter *Datei → Einstellungen → Zusätzliche Boardverwalter-URLs* eintragen: `https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json`, dann unter *Werkzeuge → Board → Boardverwalter* „esp32“ (Espressif Systems) installieren.
3. Unter *Werkzeuge → Bibliotheken verwalten* installieren: **PubSubClient** (Nick O'Leary), **ArduinoJson** (Benoît Blanchon, Version 7) und **Adafruit NeoPixel**.
4. `tulz-schrank.ino` öffnen. Die orange markierten Zeilen hat Tulz schon ausgefüllt – nicht ändern. Die grünen tragen Sie selbst ein: WLAN-Name, WLAN-Passwort und das Passwort des Brokers – beim Tulz-Broker steht das Passwort schon drin, dann nur das WLAN.
5. ESP32 per USB anschließen, unter *Werkzeuge → Board* „ESP32 Dev Module“ und den Port wählen, auf **Hochladen** (Pfeil) klicken. Bleibt das Hochladen bei „Connecting…“ stehen, die Taste BOOT am ESP32 kurz gedrückt halten.
6. *Werkzeuge → Serieller Monitor* öffnen (115200 Baud): Dort erscheint „MQTT verbunden“. Beim Start läuft ein kurzes Lauflicht über alle Fächer.

![Download auf der Schrankseite](https://tulz.work/hilfe/bild/schrank-firmware-knopf.webp?v=e0cdd23e)

![Orange: von Tulz vorbelegt – grün: selbst eintragen](https://tulz.work/hilfe/bild/schrank-sketch.webp?v=01b057eb)

Ohne eingetragenes Stammzertifikat (`MQTT_CA_CERT`) verbindet sich der Schrank verschlüsselt, prüft aber das Zertifikat des Brokers nicht. Für volle Sicherheit das Stammzertifikat einfügen – bei Let's-Encrypt-Zertifikaten „ISRG Root X1“ (letsencrypt.org/certificates), bei EMQX Cloud das CA-Zertifikat aus den Verbindungsinformationen.

Beim Tulz-Broker enthält die Firmware das Passwort des Schranks. Deshalb fragt Tulz vor dem Download einmal nach Ihrem eigenen Passwort – die Datei nicht weitergeben. Ging ein Schrank verloren oder ist die Datei in falsche Hände geraten: auf der Schrankseite unter **Status** auf **Neues Passwort erzeugen** klicken, die Firmware neu herunterladen und aufspielen. Das alte Passwort gilt sofort nicht mehr.

### Schritt 8: Verbindung testen

Zurück in Tulz: *Einstellungen → Schrank-Steuerung → **Verbindung testen und Testlicht senden***. Tulz verbindet sich mit dem Broker, alle Fächer leuchten nacheinander, und jeder Schrank meldet sich zurück. Auf der Schrankseite steht unter **Status**, wann er sich zuletzt gemeldet hat, mit Firmware, WLAN-Stärke und IP-Adresse; die Tabelle zeigt je Fach, ob die Schublade offen oder zu ist. Mit **Zeigen** leuchtet ein einzelnes Fach 15 Sekunden – so prüfen Sie, ob jede LED an der richtigen Schublade sitzt.

![Verbindung testen: Broker in Ordnung, Schrank hat sich gemeldet](https://tulz.work/hilfe/bild/schrank-test.webp?v=adb7c4a8)

![Schrankseite mit Fächern und Status](https://tulz.work/hilfe/bild/schrank-stand.webp?v=6557e24f)

### Im Alltag

- **Ausgabe** – egal ob im Ausgabeformular, per Begleitschein, am Kiosk oder am Handy: Das Fach leuchtet blau und ist für die eingestellte Zeit freigegeben. Die Meldung in Tulz nennt Schrank und Fach.
- **Rückgabe** – auch per Scan oder am Kiosk: Das Fach leuchtet grün – dort zurücklegen. Zusätzlich steht „Zurücklegen nach“ da.
- **Werkzeugseite → Im Schrank zeigen** – das Fach leuchtet 15 Sekunden gelb. Der Knopf erscheint nur bei Werkzeugen, deren Lagerplatz einem Fach zugeordnet ist.
- **Schubladen offen** – mit Kontakten zeigt die Schrankseite, welche Schubladen gerade offen stehen.

![Ausgabe: Fach ist freigegeben und leuchtet](https://tulz.work/hilfe/bild/schrank-ausgabe.webp?v=cf988a55)

![Werkzeugseite: Im Schrank zeigen](https://tulz.work/hilfe/bild/schrank-zeigen.webp?v=05518536)

![Rückgabe: Fach leuchtet, dort zurücklegen](https://tulz.work/hilfe/bild/schrank-rueckgabe.webp?v=06b4f8f3)

Die Befehle gehen nach der Buchung im Hintergrund hinaus – die Ausgabe wartet nie auf den Schrank. Ist der Broker nicht erreichbar, bleibt die Buchung trotzdem gültig; der Fehler steht in der Schrankliste und oben unter *Letzter Fehler*. Mehrere Schränke je Standort sind möglich, jeder mit eigener Geräte-Kennung.

### Wenn etwas nicht klappt

| Meldung oder Beobachtung | Was tun |
|---|---|
| „Broker-Adresse nicht auflösbar“ | Adresse prüfen – nur der Name, z. B. `mqtt.autohaus-muster.de`, ohne `mqtt://` und Port. |
| „Keine Verbindung zum Broker …“ | Port und Verschlüsselung passen zusammen? (8883 mit TLS, 1883 ohne). Ist Port 8883 am Broker offen – und am Webserver ausgehend erlaubt? |
| „Benutzername oder Passwort falsch“ / „Nicht autorisiert …“ | Zugang am Broker prüfen; der Benutzer braucht Rechte auf das Themen-Präfix. |
| „Ziele im internen Netz sind nicht erlaubt“ | Der Broker muss aus dem Internet erreichbar sein (öffentliche Adresse). |
| „noch keine Zustandsmeldung eines Schranks“ | Seriellen Monitor ansehen: „MQTT-Fehler -2“ = keine Verbindung (WLAN, Adresse, Port), „MQTT-Fehler 4“ oder „5“ = Benutzer oder Passwort. Geräte-Kennung und Themen-Präfix in Firmware und Tulz gleich? Nach einer Änderung des Präfixes die Firmware neu herunterladen. |
| Kein WLAN | Nur 2,4 GHz; WLAN-Name und Passwort genau so wie im Router. |
| Falsche Schublade leuchtet | Mit *Zeigen* jedes Fach durchgehen; LED-Reihenfolge oder Fach-Zuordnung anpassen. Mehrere LEDs je Schublade: `LEDS_PER_SLOT` in der Firmware. |
| Bei der Ausgabe leuchtet nichts | Hat das Werkzeug einen Lagerplatz in einer zugeordneten Schublade? Ist der Schrank aktiv und die Schrank-Steuerung eingeschaltet? |
| „Zugang am Tulz-Broker konnte nicht angelegt werden“ | Der Broker ist gerade nicht erreichbar – später noch einmal speichern. Bleibt die Meldung, den Support ansprechen. |
| Nach neuer Geräte-Kennung meldet sich der Schrank nicht | Beim Tulz-Broker gehört der Zugang zur Geräte-Kennung: Firmware neu herunterladen und aufspielen. |
| Schloss öffnet nicht | 12-V-Netzteil, gemeinsame Masse, MOSFET-Modul prüfen; *Fach freigeben (Sekunden)* nicht 0. |

### Sicherheit

Der Schrank nimmt nur Befehle auf seinem eigenen Thema an; der Broker verlangt Benutzername, Passwort und TLS. Ein Schloss öffnet höchstens 300 Sekunden und fällt stromlos zu (Fail-Secure) – mit dem Schlüssel geht der Schrank immer auf. Wer etwas entnommen hat, steht wie gewohnt in Tulz, nicht am Schrank: Die Ausgabe bucht der Mitarbeiter am Kiosk oder am eigenen Gerät. Beim Tulz-Broker hat jeder Schrank einen eigenen Zugang, der nur seine eigenen Themen lesen und schreiben darf; kein Betrieb sieht die Nachrichten eines anderen. Im Demo-Betrieb ist die Schrank-Steuerung gesperrt.

---

Quelle: https://tulz.work/hilfe/artikel/schrank-steuerung · Stand 2026-10-12 · Tulz
