Aller au contenu

Aiguillage d’impression

Au stand de tir, il y a généralement deux types d'imprimantes : une imprimante d’étiquettes à la caisse (p. ex. Niimbot B1) et une imprimante feuilles au bureau pour les cartes-couronnes, les classements et la clôture de caisse. S'y ajoute parfois une imprimante de tickets pour les tickets de caisse (p. ex. Epson TM-m30III). Un navigateur ne peut piloter directement ni l'une ni l'autre – il ouvre au mieux le dialogue d'impression.

L'aiguillage d’impression résout ce problème : un petit appareil agent dans le réseau de la société (p. ex. un M5Stack Core2) cherche lui-même les imprimantes et les signale à l'app. Dans l'administration, on définit seulement quel document va sur quelle imprimante. Ensuite, « Imprimer » imprime directement (après une brève question : imprimante ou PDF) sur le bon appareil.

Forfait Société

L'aiguillage d’impression fait partie du forfait Société. Sans ce forfait, l'application imprime par le navigateur ; appareils et attribution restent enregistrés. Voir Abonnement.


Comment tout s'articule

flowchart LR
    subgraph app["Schiess-Auswertungen"]
        direction TB
        doks["Étiquettes · Cartes-couronnes<br/>Classements · Clôture"] --> weiche{{"Aiguillage d’impression<br/>Attribution"}}
        weiche --> ws[("File d’attente<br/>par imprimante")]
    end

    subgraph haus["Réseau de la société au stand de tir"]
        direction TB
        agent["Appareil agent<br/>M5Stack Core2"]
        niimbot["Imprimante d’étiquettes<br/>Niimbot B1"]
        laser["Imprimante feuilles<br/>p. ex. Samsung, HP"]
    end

    agent -- "1 · signale ses imprimantes" --> ws
    ws -- "2 · récupère les tâches" --> agent
    agent -- Bluetooth --> niimbot
    agent -- "Wi-Fi / IPP" --> laser
    agent -- "3 · quittance" --> ws
  • L'appareil agent récupère, l'app n'envoie jamais. C'est pourquoi il ne faut ni ports ouverts ni IP fixe – cela fonctionne derrière n'importe quel routeur.
  • Il trouve les imprimantes lui-même : les imprimantes Niimbot par Bluetooth, les imprimantes réseau par le réseau (AirPrint/IPP). Au démarrage, toutes les 10 minutes et sur pression d'un bouton.
  • Chaque tâche est quittancée. Si l'imprimante est éteinte, en veille ou s'il manque du papier, la tâche reste dans la file d'attente et part dès que l'imprimante est de nouveau prête.
  • L'app produit le format que l'imprimante comprend – PDF ou PostScript pour les imprimantes feuilles, une image finie pour les étiquettes. Aucun pilote n'est nécessaire.

Avec un box au stand de tir

S'il y a un box au stand de tir, l'appareil agent interroge les deux : le cloud et le box. Il trouve le box de lui-même dans le réseau de la société (mDNS), il n'est pas nécessaire de saisir d'adresse. Ainsi, la caisse sur le box imprime même sans internet.

flowchart LR
    cloud[("Cloud")] -- "Configuration<br/>(appareils, clés, attribution)" --> box[("Box")]
    agent["Appareil agent"] -- récupère --> cloud
    agent -- "récupère<br/>(aussi hors ligne)" --> box
    box -. "le trouve par mDNS" .- agent

La configuration se fait dans le cloud. Le box reprend appareils, clés et attribution avec la synchronisation (toutes les heures ou via Appareil → Synchroniser maintenant).

Quelques jours sans Internet

Si Internet tombe en panne, on peut continuer à configurer sur le box :

  • Les nouvelles imprimantes sont annoncées au box par l'appareil agent lui-même.
  • On peut créer ses propres appareils agents sur le box (marqués « uniquement sur ce box ») ; leur clé vaut tout de suite.
  • On peut saisir des types de rouleaux.
  • L'attribution peut être remplacée – elle ne vaut alors que sur le box (« remplacée sur le box »). Utiliser l'attribution du cloud l'annule.

Quand Internet revient, la synchronisation réunit tout : la même imprimante n'apparaît qu'une fois, les tâches en attente restent. Les appareils venant du cloud ne se modifient pas sur le box – seulement dans le cloud.

Le box imprime lui-même

Le box est lui-même un appareil agent pour les imprimantes de son réseau – sans appareil supplémentaire et sans clé à saisir. Après le couplage, il se configure lui-même auprès du cloud et apparaît dans l'administration comme appareil « Box … ».

  • Imprimantes A4 (p. ex. Samsung, HP) : il les trouve via AirPrint/IPP et imprime en PDF ou PostScript.
  • Imprimantes d'étiquettes Wi-Fi : Zebra (ZPL) et Brother QL. Il lit la taille des étiquettes dans l'imprimante.
  • Imprimantes de tickets en réseau : Epson TM (p. ex. TM-m30III, TM-T20, TM-T88) via le port 9100. Il lit le modèle, le numéro de série et le niveau de papier dans l'imprimante.
  • Niimbot (p. ex. B1) : par câble USB sur le Box ou par Bluetooth si le Box a un adaptateur (p. ex. mini-PC) – modèle, numéro de série, rouleau et batterie sont lus dans l'imprimante. Sans Bluetooth (RUTC), par un Core2. La B1 n'accepte qu'une connexion : le Box ou le Core2, pas les deux.

Sur le box, on peut désactiver cela sous Impression → Imprimantes (Aiguillage d’impression) avec Le box imprime lui-même …, p. ex. si un Core2 gère toutes les imprimantes. Si le box et un Core2 trouvent la même imprimante, elle apparaît deux fois – on en attribue une, seule celle-ci imprime.

Brother QL

La prise en charge des Brother QL suit la description du protocole, mais n'a pas encore été testée sur un appareil réel.


Configuration

1. Créer l'appareil agent

Administration → Impression → Imprimantes (Aiguillage d’impression), en bas sous Nouvel appareil agent, saisir un nom (p. ex. « Core2 stand ») et Créer. L'app affiche la clé de l'agent et l'adresse du serveur – seulement maintenant, une seule fois.

Transférer la clé tout de suite

La clé n'est enregistrée que sous forme de somme de contrôle et n'est plus lisible par la suite. Si elle a été perdue : sur l'appareil, Nouvelle clé – l' ancienne n'est alors plus valable. Cibles et attribution sont conservées.

2. Configurer l'appareil agent (M5Stack Core2)

  1. Allumer le Core2. Sans réglages, il ouvre le Wi-Fi PWA-Agent-XXXX.
  2. Se connecter avec un téléphone ou un portable ; la page de configuration s'ouvre le plus souvent d'elle-même (sinon http://192.168.4.1).
  3. Saisir : WLAN (Wi-Fi) et mot de passe du stand de tir, Server-URL et Agent-Schlüssel (clé de l'agent) de l'étape 1. Sous Box im Vereinsnetz (box dans le réseau de la société), laisser la valeur par défaut « automatisch finden » (trouver automatiquement).
  4. Speichern & neu starten (enregistrer et redémarrer).

Après quelques secondes, l'appareil apparaît dans l'administration comme en ligne, avec en dessous les imprimantes qu'il a trouvées.

2b. Coupler l'agent PWA (agent autonome)

L'agent PWA fonctionne aussi sans box, p.ex. sur un mini-PC près de l'imprimante. Il ne connaît pas le cloud de lui-même – on le couple avec un lien :

  1. Au premier démarrage, il imprime un ticket de configuration (ticket, étiquette ou A4) avec l'adresse de l'interface web, le PIN et un code QR. Sur l'appareil, pwa-agent pin affiche le PIN ; pwa-agent pin neu en crée un nouveau.
  2. Ici en bas, choisir Coupler un agent PWA. L'application affiche un lien de couplage avec code (valable 15 minutes, une seule fois).
  3. Dans l'interface web de l'agent (http://<appareil>:2000/), se connecter avec le PIN, sous Ajouter une connexion coller le lien – ou choisir « Schiess-Auswertungen » et saisir seulement le code – puis Vérifier. Il affiche qui répond (société), puis Connecter.

Il apparaît ensuite ici comme Agent d'impression … avec ses imprimantes. Si un box de la même société est dans le réseau, il le trouve lui-même et imprime aussi sans Internet.

Chercher les imprimantes réseau (WebUI, carte Imprimantes, avec PIN ; dès l'agent 0.9.40 – la WebUI est en français dès 0.9.41) : activé, l'agent cherche des imprimantes dans le réseau (Bonjour et Niimbot dans son propre réseau /24). Le mieux est d'installer l'agent seulement là où il y a des imprimantes : les imprimantes réseau via un seul agent (p. ex. le RUTC), les imprimantes USB et Bluetooth sur l'appareil auquel elles sont branchées. Sur ces appareils, désactiver la recherche dès que le ticket de configuration est imprimé – sinon chaque agent annonce une nouvelle fois les mêmes imprimantes réseau. Désactivé, il oublie immédiatement les imprimantes réseau déjà annoncées ; les adresses saisies à la main restent valables.

Déconnecter :

  • Box ou app sur l'agent (p. ex. un ancien couplage sous « Apps sur le réseau ») : dans la WebUI de l'agent avec le PIN, sous Apps sur le réseau → Déconnecter.
  • Couplage cloud de l'agent : dans la WebUI sous Connexions → Déconnecter. Les entrées « de l’app » sont gérées par la box sur le même appareil.
  • Supprimer complètement l'agent : dans le cloud, ici chez les agents, ✕, puis Vraiment supprimer ? – ensuite déconnecter aussi sur l'appareil, sinon il continue à s'annoncer avec son ancienne clé.

Rôles (apps qui impriment directement via l'agent)

Les apps qui envoient elles-mêmes à l'agent PWA (p.ex. un système de caisse) impriment vers un rôle comme « Bon » ou « Küche » au lieu d'une imprimante précise. Un rôle est une liste ordonnée : Drucker (imprimante), Ersatz (remplacement), 2. Ersatz (2e remplacement). L'agent prend la première imprimante prête qui sait traiter le format ; si l'une tombe en panne, les tâches en attente changent aussi.

Dans l'interface web, carte Rollen (rôles) : avec le PIN, choisir Rolle, Drucker, Ersatz et 2. Ersatz, puis Speichern (enregistrer) – de même pour modifier ou supprimer. La carte montre la chaîne de chaque rôle ; l'imprimante utilisée en ce moment porte aktiv.

Pour les développeurs d'apps : POST /v1/auftraege avec { rolle: "Bon", format, daten } au lieu de ziel ; GET /v1/rollen livre les rôles.

3. Vérifier les imprimantes

Chaque imprimante signalée a sa propre ligne avec l'état (prête, non vue, erreur), la batterie et les étiquettes restantes resp. le papier dans le bac.

  • Nom affiché – p. ex. « Caisse » ou « Bureau » au lieu du numéro de modèle. Apparaît aussi sur l'écran de l'appareil agent. Enregistré en quittant le champ, sans bouton. Si l'imprimante a elle-même un nom (nom d'hôte, p. ex. « Bon-Theke »), l'application l'affiche tant qu'aucun nom n'est défini. Sous le nom figurent le modèle et le numéro de série. Si un agent ne connaît une Niimbot dans le réseau que par son adresse IP, connu seulement par l'IP … figure à côté (dans l'attribution et le remplacement « · par IP … »). Choisir celle avec numéro de série – l'IP change avec le DHCP.
  • Impression de test (imprimante d’étiquettes), Ticket test (imprimante de tickets) resp. Page test (imprimante feuilles, A4) vérifie l'appareil lui-même – même sans attribution.
  • File d’attente montre les tâches en attente, imprimées et échouées avec compteurs et indications sur ce qui empêche l'impression – avec réessayer et supprimer (avec confirmation).
  • Chercher des imprimantes sur l'appareil, lorsqu'une nouvelle imprimante s'ajoute.

Nouveau rouleau d'étiquettes

La Niimbot signale le type de son rouleau, pas sa taille. Pour un type inconnu, l'administration demande une fois la largeur et la hauteur en millimètres (p. ex. rouleau 10262260 = 50 × 30 mm). Ensuite, chaque rouleau de ce type est reconnu.

4. Attribuer

En haut, sous Attribution, on choisit l'imprimante pour chaque type de document :

Type de document Imprimante Quoi
Étiquettes imprimante d’étiquettes étiquettes à la caisse, étiquettes de remplacement
Cartes de couronne imprimante feuilles cartes-couronnes (A6)
Diplômes imprimante feuilles diplômes (A4) – vide = comme les documents
Documents imprimante feuilles classement, clôture de caisse, championnat, liste des couronnes, décompte des munitions, AMM (A4)
Tickets de caisse imprimante de tickets ticket de caisse après le paiement à la caisse
Bon de paiement imprimante de tickets bon avec QR après la saisie d’un paiement (Paiement) ; vide = l’imprimante des tickets de caisse
Bon de résultat imprimante de tickets résultat avec coups et image des impacts (Couronnes) ; vide = l’imprimante des tickets de caisse
Portail des résultats : ticket / A4 imprimante de tickets / imprimante A4 près du kiosque du portail des résultats ; vide = pas d’impression au portail (jamais l’imprimante du bureau)

Seules les imprimantes du type adéquat sont proposées. « – comme avant – » signifie : pas d'aiguillage, le navigateur imprime comme avant. Exception Étiquettes : elles s'impriment uniquement via l'aiguillage – sans attribution, la caisse indique « Aucune imprimante attribuée pour « Étiquettes ». »

Chaque attribution a un bouton Test. Il imprime par le même chemin qu'en service (étiquette de test, carte test A6, ticket test resp. page test A4) et vérifie ainsi l'imprimante et l'attribution. La page test indique l'imprimante, l'attribution et le format.

Remarque « Format »

Si une imprimante feuilles ne sait traiter ni PDF ni PostScript, l'app envoie du PDF avec « l'imprimante reconnaît elle-même ». Cela fonctionne avec beaucoup de modèles, mais pas tous – l'administration affiche alors une remarque. L'essayer tout de suite avec la page test.

Imprimante de remplacement

Sous l'imprimante de chaque attribution se trouve Remplacement : « – aucun remplacement – » ou une autre imprimante du même type. Si l'imprimante n'est pas prête – elle signale une erreur (p.ex. plus de papier, couvercle ouvert), elle est non vue ou son appareil agent est hors ligne – et que le remplacement est prêt, les nouvelles tâches vont au remplacement. Les tâches qui attendent encore et que l'agent n'a pas encore récupérées changent aussi (en 10 secondes environ) ; celles déjà récupérées restent – rien ne s'imprime deux fois. Cela vaut aussi pour les étiquettes de la caisse. Dès que l'imprimante est à nouveau prête, les nouvelles tâches retournent vers elle.

Tant que le remplacement imprime, l'attribution indique « imprimante n’est pas prête – remplacement imprime. » ; les tâches transférées affichent « (remplace imprimante) » dans la file d'attente.

Le remplacement se règle dans le cloud ; sur le box, il est seulement affiché (« L’imprimante de remplacement se règle dans le cloud. ») et arrive avec la synchronisation. Si l'imprimante de remplacement est retirée, l'attribution n'a simplement plus de remplacement.

5. Bac, papier, couleur, faces

Si l'imprimante A4 attribuée le permet, des listes apparaissent sous l'attribution – remplies avec ce que l'imprimante annonce elle-même :

Champ Exemple
Bac Bac 1, Bac multifonction
Papier Papier normal, Carton
Couleur Couleur, Noir et blanc
Faces recto, recto verso

Ainsi une seule imprimante sert les deux : documents depuis le bac, en noir et blanc et recto verso, cartes-couronnes depuis le bac multifonction sur carton. « – l’imprimante décide – » laisse le choix à l'imprimante.

Si une impression va dans un bac à remplir à la main (bac multifonction), l'app affiche aussitôt « Insérer le papier ou les cartes dans … » ; l'imprimante attend que les cartes soient en place. Un bourrage ou un manque de papier apparaît en clair dans l'état de l'imprimante.

Core2

Le Core2 ne tient compte du bac et du papier qu'après une mise à jour du micrologiciel ; d'ici là, il imprime comme avant.


En service

  • Les étiquettes partent, après l'inscription à la caisse, directement vers l'imprimante d’étiquettes attribuée.
  • Les cartes-couronnes s'impriment directement depuis la fenêtre des couronnes.
  • Tickets de caisse : après Encaissé en espèces resp. TWINT → Payé, un ticket part vers l'imprimante de tickets – seulement si une imprimante est attribuée à « Tickets de caisse ». Sans attribution, pas de ticket. Le ticket indique la société (avec logo si souhaité), l'événement, le nom, les passes payées avec leur montant, l'arrondi, le total et le mode de paiement. Si l'imprimante coince, le paiement est quand même enregistré ; la caisse indique si le ticket attend.
  • Documents : « Imprimer » sur le classement, la clôture de caisse, etc. met la page au format A4 (tableaux larges en paysage, en-tête sur chaque page, numéros de page) et l'envoie à l'imprimante. Ensuite apparaît en bas à droite une remarque avec Imprimer depuis le navigateur – si l'on préfère finalement le dialogue d'impression.
  • Sans connexion (classement public), c'est toujours le navigateur qui imprime.

Firmware des appareils-agents

Un nouveau firmware pour les appareils agents (p. ex. le Core2) arrive par le serveur – l'appareil le récupère lui-même, comme les tâches d'impression. Rien ne se met à jour tout seul : une nouvelle version n'arrive sur l'appareil que lorsque l'administration la libère.

Sous Impression → Imprimantes (Aiguillage d’impression) → Firmware des appareils-agents figure, par type d'appareil (p. ex. esp32-core2) :

  1. Choisir la version et toucher Libérer. Sans plage horaire, cela démarre immédiatement ; avec une plage horaire (p. ex. 02:00–05:00), seulement pendant cette période. Choisir seulement la version ne suffit pas : tant que ce n'est pas libéré, « pas encore libérée » s'affiche et le bouton s'appelle p. ex. « Libérer 0.11.4 ».
  2. En dessous figurent les appareils de ce type avec la version qui tourne actuellement et l'état de la mise à jour : à l'essai, mis à jour ou échec de la mise à jour. Si l'appareil indique „Bootloader ohne Rückfall – einmal per USB aktualisieren“, il lui manque encore le nouveau bootloader – sans lui, pas de retour automatique à l'ancienne version.
  3. Un appareil isolé peut recevoir à droite sa propre version (p. ex. pour en essayer d'abord un seul). « – comme tous – » le remet sur la libération valable pour tous.

Un appareil ne se met à jour que s'il n'a rien à imprimer, qu'aucune quittance n'est en suspens et qu'il est branché au courant ou que sa batterie dépasse 50 %. La nouvelle version tourne d'abord à l'essai : si elle n'atteint aucun serveur dans les 10 minutes, l'appareil redémarre et tourne à nouveau avec l'ancienne version. Réessayer la même version = Libérer une nouvelle fois.

Avec un box au stand de tir

La libération se fait dans le cloud. Elle arrive sur le box avec la synchronisation, le box récupère ensuite lui-même le fichier firmware. Dès lors, les appareils reçoivent la mise à jour même sans Internet. Le box ne fait qu'afficher l'état.

Pour l'exploitant

Seul l'exploitant téléverse les fichiers firmware (Master → Firmware) ; ils valent pour toutes les sociétés. Seule une image d'application signée est acceptée (pwa-agent.bin, signée avec espsecure.py sign_data --version 2 --keyfile <schlüssel> …). L'appareil vérifie lui-même la signature et ne démarre jamais un fichier étranger ou non signé. La clé privée reste hors ligne chez l'exploitant, jamais sur le serveur.


Quand rien ne s'imprime

Affichage Cause Remède
Appareil hors ligne appareil agent sans courant ou sans Wi-Fi vérifier courant et Wi-Fi ; contrôler l'adresse du serveur sur l'appareil
Imprimante non vue imprimante éteinte, en veille, hors de portée ou connectée à l'app du téléphone allumer l'imprimante resp. déconnecter l'app du téléphone – la tâche attend et part ensuite
Imprimante reste non vue en réparation, remplacée ou disparue – l’appareil ne l’interroge plus, après trois essais, que toutes les quelques minutes (jusqu’à 30 min) ✕ sur la ligne puis confirmer : l’appareil l’oublie, les tâches en attente pour elle sont supprimées. Si elle (ou son remplacement) revient, la recherche la retrouve – tout de suite avec Chercher des imprimantes
Imprimante erreur (p. ex. plus de papier, couvercle ouvert) message de l'imprimante corriger ; la tâche continue
L'attribution indique « … n’est pas prête – … imprime. » l'imprimante attribuée n'est pas prête, c'est le remplacement qui imprime remettre l'imprimante en ordre – dès qu'elle est prête, les nouvelles tâches retournent vers elle
Imprimante de tickets « Papier presque vide » le rouleau arrive à sa fin (l'état reste « prête ») préparer un nouveau rouleau ; avec « Plus de papier », le ticket attend que le nouveau rouleau soit en place
La caisse indique « Aucune imprimante attribuée pour « Étiquettes ». » aucune imprimante n'est attribuée aux « Étiquettes » sous Attribution, choisir une imprimante d'étiquettes pour « Étiquettes »
Tâche échouée l'imprimante a refusé dans la file d'attente réessayer ; tenir compte de la remarque sur le format
L'appareil agent affiche « Schlüssel ungültig » (clé invalide) clé erronée ou recréée dans l'administration recréer la clé et la saisir dans l'appareil
L'appareil agent affiche « Schlüssel an der Box (noch) unbekannt » (clé (encore) inconnue du box) le box ne connaît pas encore l'appareil resp. la nouvelle clé – il ne reprend les deux qu'avec la synchronisation sur le box, Appareil → Synchroniser maintenant. D'ici là, l'appareil continue à récupérer auprès du cloud ; rien ne se perd.
L'appareil agent ne trouve aucun box box et appareil agent dans des réseaux différents (mDNS ne passe pas un routeur), ou box pas encore couplé mettre les deux dans le même réseau ; sinon saisir l'adresse du box à la main sur l'appareil

Après chaque modification d'appareils ou de clés

Un nouvel appareil agent, une Nouvelle clé ou une attribution modifiée s'appliquent immédiatement dans le cloud, sur le box seulement après la prochaine synchronisation. Pour continuer à travailler tout de suite : sur le box, Appareil → Synchroniser maintenant.