Technologie
Dyfus II: Modulare Tankstellen-Automatisierung
Eine verteilte, event-getriebene Systemarchitektur für den modernen Tankstellenbetrieb. Von der Zapfsäulensteuerung über die Kassensysteme bis zur zentralen Datenverarbeitung - vollständig offline-fähig und hochverfügbar.
Systemübersicht
Dyfus II ist ein modernes Tankstellen-Management-System, das aus sechs spezialisierten Komponenten besteht. Die Kommunikation erfolgt vollständig über MQTT (Message Queuing Telemetry Transport), was Entkopplung, Skalierbarkeit und Ausfallsicherheit gewährleistet.
Komponentenarchitektur
DPOS Angular
POS-Frontend
BusinessLogicHub
Geschäftslogik
CashRegister
Fiskalkassen
Persistor
Lokale DB
Replicator
Synchronisation
DispensersController
Zapfsäulen
Komponenten im Detail
BusinessLogicHub
Python | MQTT | Firebird SQL
Der zentrale Orchestrator des Systems. Koordiniert alle Geschäftsprozesse: Kraftstoffverkäufe, Zahlungsabwicklung, Bestandsverwaltung und Schichtmanagement.
DPOS Angular
Angular 18 | TypeScript | RxJS | Material Design
Das moderne Point-of-Sale Frontend für Kassenbediener. Echtzeit-Darstellung der Zapfsäulenstatus, Artikelverwaltung, Kundenverwaltung und umfassende Berichtsfunktionen.
DispensersController
Python | Serial Communication | SK Protocol (RAFCi 3.A)
Kommunikationsbrücke zwischen POS-System und Zapfsäulenhardware (RAFCI-Controller). Steuert Tankfreigaben, überwacht Tankvorgänge in Echtzeit und kommuniziert mit Füllstandsmessern.
CashRegisterCommunicator
Python | DATECS Protocol | Serial Communication
Middleware für die Kommunikation mit Fiskalkassen (DATECS FP-800, Eltrade). Übersetzt MQTT-Befehle in das binäre Kassenprotokoll und verarbeitet Antworten.
Persistor
Python | SQLite | MQTT
MQTT-zu-SQLite-Bridge für lokale Datenpersistenz. Ermöglicht Offline-Betrieb durch lokale Datenhaltung und synchronisiert Änderungen bei Wiederverbindung.
Replicator
Python | Firebird | SQLite | MQTT
Bidirektionale Datenbank-Replikation zwischen zentraler Firebird-Datenbank und dezentralen SQLite-Stationen. Implementiert ID-Mapping und dreiphasige FK-Verarbeitung.
Technologie-Stack
Backend
-
Py
Python 3.11+
Alle Backend-Services
-
MQ
MQTT (Mosquitto)
Message Broker
-
FB
Firebird 3/4
Zentrale Datenbank
-
SQ
SQLite
Lokale Station-DB
Frontend
-
Ng
Angular 18
Standalone Components
-
TS
TypeScript 5.5
Type-safe Development
-
Rx
RxJS
Reactive Programming
-
M3
Material Design
UI-Komponenten
Architekturprinzipien
Event-Driven Architecture
Alle Komponenten kommunizieren über asynchrone Events. Dies ermöglicht lose Kopplung, einfache Erweiterbarkeit und hohe Fehlertoleranz.
Offline-First
Jede Station arbeitet autark mit lokaler SQLite-Datenbank. Bei Netzwerkproblemen läuft der Betrieb unterbrechungsfrei weiter.
Ausfallsicherheit
Dreistufiges Blocking-System schützt vor inkonsistenten Zuständen. State-Persistence ermöglicht saubere Wiederherstellung nach Abstürzen.
Modularität
Jede Komponente ist eigenständig deploybar und aktualisierbar. Docker-Container ermöglichen einfaches Deployment und Skalierung.
Beispiel: Tankvorgang
Zapfpistole wird abgenommen
DispensersController erkennt Event über RAFCI und sendet Authorization-Request via MQTT
BusinessLogicHub prüft Freigabe
Prüfung auf Tanksperre, Kundenkredit, verfügbaren Kraftstoff im Reservoir
DPOS zeigt aktiven Tankvorgang
Echtzeit-Updates von Menge und Betrag im Frontend via MQTT Events
Tankvorgang beendet
Sale-End-Event triggert Belegdruck und Datenbankaktualisierung
Kassenbon wird gedruckt
CashRegisterCommunicator sendet Druckbefehl an Fiskalkasse
Daten werden repliziert
Persistor schreibt in SQLite, Replicator synchronisiert zur Zentrale
Interesse an einer Demo?
Wir zeigen Ihnen gerne das Dyfus II System in Aktion und besprechen, wie es sich an Ihre Anforderungen anpassen lässt.
Demo vereinbaren