zplCloud Blog
Drucker einrichten und zurücksetzen vom Android-Handy - über ein USB-Kabel
! U1 setvar "device.reset" "on" - geschickt vom Gerät in deiner Tasche. Kein PC, kein Treiber, kein Netzwerk.
Der Drucker steht nie neben einem Computer
Ein Drucker in schlechtem Zustand ist ein physisches Problem: Zeichensalat im Display, eine von irgendwem verstellte Schwärzung, eine WLAN-Konfiguration, die auf die SSID vom letzten Jahr zeigt. Das reparierst du nur direkt am Gerät - auf einem Stapler, im Rack, hinten im LKW - und der einzige Computer in Reichweite ist ein Handy.
Die zplCloud-Android-App spricht über ein einfaches USB-Kabel mit dem Drucker. Kein Laptop, kein Seriell-Adapter, keine Administratorrechte, und kein funktionierendes Netzwerk am Drucker - was zählt, denn eine kaputte Netzwerkkonfiguration ist oft genau der Grund, warum du davorstehst.
Warum das unter Android geht und unter iOS nicht
Android bietet USB-Host-Modus: Mit einem OTG-Kabel wird das Handy zum Host und kann ein USB-Gerät übernehmen. Die App (auf Capacitor-Basis) nutzt das, um einen Kanal zur Kommandoschnittstelle des Druckers zu öffnen.
iOS hat keine vergleichbare öffentliche API, um beliebige USB-Geräte zu übernehmen. Auf iPhone und iPad laufen dieselben Aufgaben über den Netzwerkweg - Weblink oder CLI-Agent. Das ist eine Plattformgrenze, kein Roadmap-Punkt.
Zwei USB-Wege
| Modus | Wie er verbindet | Wann |
|---|---|---|
| Zebra SDK | über den Zebra-USB-Treiber / die Link-OS-SDK-Schicht | der Drucker meldet sich als normales Zebra-USB-Gerät |
| Direkt USB-seriell (CDC-ACM) | eingebauter Treiber, keine Zebra-Komponenten nötig | der Drucker ist im USB-CDC-Modus; Android fragt einmal nach der USB-Berechtigung |
Beide enden am selben Punkt: ein bidirektionaler Kanal, der SGD und ZPL trägt. Enumeriert ein Weg das Gerät nicht, probier den anderen, bevor du Kabel oder Drucker verdächtigst.
Die Kommandos, auf die es ankommt
Alles Folgende ist normales SGD über denselben Kanal - die App ist eine Tastatur für die Kommandoschnittstelle des Druckers, kein proprietäres Protokoll.
Prüfen, ob du mit dem richtigen Gerät sprichst:
! U1 getvar "device.friendly_name"
Kommt der Name zurück, funktioniert der Kanal, und alles andere funktioniert auch. Mach das zuerst - es trennt ein Kabelproblem von einem Kommandoproblem.
Auf einen sauberen Zustand zurücksetzen:
! U1 setvar "device.reset" "on"
Komplette Konfiguration auslesen - sinnvoll, bevor du etwas änderst, damit du es zurückstellen kannst:
{}{"allconfig":null}
Nachsehen, was der Drucker über seinen Speicher denkt, bevor du Fonts oder Grafiken hochlädst:
! U1 getvar "memory.flash_free"
Netzwerk- und Schwärzungsvariablen werden genauso gesetzt. Entscheidend ist: Nichts davon ist app-spezifisch - dieselben Strings funktionieren später am Schreibtisch aus der CLI (zplcloud send --usb --zpl "…").
Einrichtung
1. zplCloud-App auf dem Android-Handy oder -Tablet installieren.
2. Drucker per USB-/OTG-Kabel anschließen und einschalten.
3. USB-Berechtigung erteilen, wenn Android fragt, und den Verbindungsmodus wählen.
4. Abfragen, setzen oder zurücksetzen.
Praxishinweise
- Ein Datenkabel nehmen. Ein reines Ladekabel enumeriert nichts - und das Symptom sieht exakt aus wie ein nicht unterstützter Drucker.
- Erst lesen, dann schreiben.
getvarvorsetvar. Eine gesicherte Konfiguration ist der Unterschied zwischen fünf Minuten Reparatur und einem Drucker, den niemand mehr herstellen kann. - Ein Reset ist kein Werksreset.
device.resetstartet den Drucker neu; es löscht weder Fonts noch Formate noch Netzwerkeinstellungen. Wissen, was man will, bevor man tippt. - Das Handy zum Drucker bringen, nicht den Drucker zum Schreibtisch. Genau darum geht es - ein fest im Rack verbauter Drucker muss zum Neukonfigurieren nicht ausgebaut werden.