Das ist ein Odoo Modul für die Verwaltung von Maschinen, Einweisungen für Nutzer in einer offenen Werkstatt / Fablab
Go to file
matthias.lotz 6676433d46 feat(mqtt): IoT Bridge Phase 1.4 - Event Queue mit Retry Logic
Phase 1.4 abgeschlossen: Event Queue mit exponential backoff retry logic

Neue Features:
- event_queue.py: Thread-safe Queue mit Retry-Mechanismus
  * Exponential backoff: 2^retry_count, max 60s
  * Max 10 retries pro Event
  * Background-Thread für kontinuierliche Verarbeitung
  * Queue-Statistiken (pending, sent, failed, retry counts)

- Event-UID Generation (UUID) in allen Events
  * session_started, session_heartbeat, session_ended, session_timeout
  * Ermöglicht Idempotenz in Odoo

- MockOdooClient Failure-Simulation
  * mock_failure_rate (0.0-1.0) in config.yaml
  * Wirft Exceptions für Retry-Testing

- Config-Erweiterungen
  * LoggingConfig.log_file (Optional[str])
  * OdooConfig.mock_failure_rate (float, default 0.0)

Änderungen:
- main.py: Queue-Integration mit Background-Thread
  * on_event_generated() nutzt Queue statt direktem send
  * Graceful shutdown: Queue-Processing vor MQTT-Disconnect
  * Alte IotBridge-Klasse entfernt (duplicate code cleanup)

- session_detector.py: event_uid zu allen Events hinzugefügt
- odoo_client.py: MockOdooClient mit failure_rate Parameter

Tests (alle PASSED):
- Unit Tests: test_event_queue.py (13/13 passed)
  * QueuedEvent retry logic & exponential backoff
  * Queue operations (enqueue, statistics)
  * Successful send, retry scenarios, max retries exceeded

- Integration Tests: test_retry_logic.py (2/2 passed in 48.29s)
  * test_retry_on_odoo_failure: Events werden bei Failures enqueued
  * test_eventual_success_after_retries: 50% failure → eventual success

Bridge ist jetzt resilient gegen Odoo-Ausfälle!
2026-02-04 17:57:12 +01:00
.devcontainer FIX: pos: wenn auf - gedrückt wird um eine Order zu entfernen, wurde nicht 2025-10-25 14:10:25 +02:00
.gitea/workflows .gitea/workflows/odoo-restore-open_workshop_install.yaml aktualisiert 2025-04-23 21:46:02 +02:00
.vscode FIX: pos: wenn auf - gedrückt wird um eine Order zu entfernen, wurde nicht 2025-10-25 14:10:25 +02:00
aspl_equipment_qrcode_generator feat(aspl_equipment_qrcode_generator): Fix QR-code generation and PDF rendering 2025-12-11 21:53:21 +01:00
FEATURE_REQUEST feat(mqtt): Implement M0-M3 - MQTT IoT Bridge with Session Detection 2026-01-22 19:59:17 +01:00
log working merge with open_workshop 17.0. Missing Traings view in Machine Backend. No POS Machine sidebar. 2025-06-28 15:31:59 +02:00
open_workshop_base fix: POS-Funktionalität in open_workshop_pos verschoben + Workarounds 2026-01-28 18:55:55 +01:00
open_workshop_dokuwiki feat: Wiki-Links in Tree View als klickbare Namen anzeigen 2026-01-19 20:57:43 +01:00
open_workshop_employee_imagegenerator Update custom widget 2026-01-13 17:53:31 +01:00
open_workshop_mqtt feat(mqtt): IoT Bridge Phase 1.4 - Event Queue mit Retry Logic 2026-02-04 17:57:12 +01:00
open_workshop_pos fix: POS-Funktionalität in open_workshop_pos verschoben + Workarounds 2026-01-28 18:55:55 +01:00
open_workshop_pos_customer_display Umstellung: Employee Image Generator speichert nur Foto, Customer Display baut Badge dynamisch 2026-01-12 19:10:43 +01:00
open_workshop_report Integration Plan für automatisierte DokuWiki-Report-Generierung 2025-12-26 23:47:24 +01:00
.gitignore fix: MQTT topic matching + UI button fixes 2026-01-28 22:08:59 +01:00
open_workshop.code-workspace FIX: pos: wenn auf - gedrückt wird um eine Order zu entfernen, wurde nicht 2025-10-25 14:10:25 +02:00
README.md fix: open_workshop_base Installation-Fehler behoben 2026-01-27 22:29:14 +01:00
todo.md working merge with open_workshop 17.0. Missing Traings view in Machine Backend. No POS Machine sidebar. 2025-06-28 15:31:59 +02:00

Abhängigkeiten von maintenance erklären.