dvbapiNET v2.3
Oscam dvbapi Plugin für DVBViewer & MDAPI
Oscam dvbapi Plugin für DVBViewer & MDAPI
Hallo Community,
ich möchte euch dvbapiNET vorstellen — ein erweitertes .NET-Plugin, das die Oscam dvbapi-Schnittstelle in DVBViewer und MDAPI-kompatible Anwendungen einbindet.
Das Plugin baut auf der ursprünglichen Arbeit von t5b6_de auf und wurde in den Versionen 2.0 bis 2.3 deutlich erweitert. Im Mittelpunkt stehen Stabilität, Sichtbarkeit (Monitoring) und Integrationen (Web-UI, MQTT, Home Assistant).
- Echtzeit-DVB-Entschlüsselung über Oscam (TCP dvbapi-Protokoll)
- Kompatibel mit DVBViewer (natives Plugin) und MDAPI (ProgDVB, etc.)
- Automatische Wiederverbindung mit exponentiellem Backoff (1s → 32s)
- 30s Heartbeat zur Erkennung von Verbindungsabbrüchen
- Befehls-Queue, die nach Reconnect automatisch abgespielt wird
- Integriertes Menü Plugins → dvbapiNet in DVBViewer (Klick = Konfiguration)
- Tabbed Konfigurations-Dialog: Konfiguration / Status & Aktionen / Debug / Über
- Eingebettete Web-Oberfläche auf Port 8080 (TcpListener, kein URL ACL nötig)
- Auto-aktualisierte Status-Seite mit Entschlüsselungs-Statistiken
- Historie der letzten 100 ECMs (CAID, PID, Latenz, Reader, Protokoll)
- Auto-Discovery von Oscam-Servern im lokalen Subnetz
- Failover für mehrere Oscam-Server (Prioritätsliste, automatischer Wechsel)
- Windows Tray-Icon mit Schnellmenü und nativen Toast-Benachrichtigungen
- Optional HTTP Basic Auth auf dem Web-Interface
- Webhooks (POST JSON) bei Events
- 1-Klick Diagnose — generiert ZIP mit Log + maskierter Config + Snapshot
- GitHub Auto-Updater: prüft beim Start auf neue Releases
- Dark Mode für den Konfigurations-Dialog
- CSV-Export der ECM-Historie (Dialog-Button +
Endpoint)Code:
/api/ecm/export.csv - Automatische Log-Rotation bei 5 MB (3 rotierte Dateien)
- GitHub Actions CI mit Build-Badge
- CW-Cache (opt-in) für schnelleres Umschalten — kürzlich empfangene Control Words pro SID werden beim Retune sofort an den neuen Descrambler übergeben, ohne auf eine neue ECM-Antwort zu warten. Aktivierbar via Dialog oder
in der INI.Code:
[cache] cw=1 - Channel-Heatmap — Top 10 der meistgesehenen Kanäle nach Sehzeit
- Per-CAID ECM-Zähler — Übersicht welche CAIDs aktiv genutzt werden
- MQTT-Publisher — eigene minimale MQTT 3.1.1 Implementierung, keine NuGet-Abhängigkeit. Veröffentlicht den Plugin-Status alle 10 Sekunden mit Last-Will-Testament für Availability.
- Home Assistant Auto-Discovery — erstellt automatisch 6 Sensoren (Verbindung, Kanal getunt, Service-ID, ECM-Latenz, CW-Zähler, ECM-Zähler) unter einem Gerät "dvbapiNET" in HA.
- xUnit Test-Projekt für ReconnectionStrategy und CwCache (13/13 Tests grün, lauffähig mit
)Code:
dotnet test
Aktuelle DLL und alle Releases auf GitHub:
Sie müssen registriert sein, um Links zu sehen
- DVBViewer schließen
-
nachCode:
dvbapiNet.dllkopierenCode:C:\Program Files (x86)\DVBViewer\Plugins\ - DVBViewer starten
- Menü Plugins → dvbapiNet öffnen und den Oscam-Server konfigurieren
Konfigurationsdatei:
Code:
%ProgramData%\dvbapiNET\dvbapiNET.ini
Minimal-Beispiel mit allen wichtigen Sektionen:
Code:
[dvbapi]
server=127.0.0.1
port=633
; Optional: Komma-separierte Failover-Server
servers=192.168.1.10:633,192.168.1.11:633
[web]
port=8080
; Leer lassen für kein Basic Auth
user=
password=
[cache]
; CW-Cache für schnelleres Umschalten (experimentell aber sicher)
cw=1
[mqtt]
enabled=1
host=192.168.1.10
port=1883
user=mqtt_user
password=mqtt_pass
ha_discovery=1
[ui]
tray=1
dark=0
[update]
check=1
owner=prof-abdo
repo=dvbapiNET
Nach dem Start ist die Status-Seite unter
Sie müssen registriert sein, um Links zu sehen
erreichbar — Auto-Refresh alle 5 Sekunden.Verfügbare JSON-Endpoints (Auszug):
-
— Verbindungsstatus, getunter Kanal, SID, PIDCode:
/api/status -
— CW/ECM-Zähler, Latenz, Cache-StatistikCode:
/api/decrypt/stats -
— die letzten 100 ECMsCode:
/api/ecm/recent -
— Minutenbasierte Latenz (60 Min)Code:
/api/ecm/latency-history -
— Top-Kanäle nach SehzeitCode:
/api/heatmap/channels -
— ECM-Anzahl pro CAIDCode:
/api/heatmap/caid -
— Subnetz-Scan nach Oscam-ServernCode:
/api/discovery/scan -
— Komplette ECM-Historie als CSVCode:
/api/ecm/export.csv -
— Erzwingt eine ReconnectCode:
/api/reconnect
Source-Code, Issue-Tracker und alle Releases auf GitHub:
Sie müssen registriert sein, um Links zu sehen
Lizenz: GPL-3.0
Pull Requests, Bug Reports und Feedback sind sehr willkommen!
Basierend auf der ursprünglichen Arbeit von t5b6_de und der dvbapiNET-Community.
Roadmap v2.4:
- Mehrsprachige UI (DE / EN / FR) über zentrale Message-Enums
- Weitere Tests für DecryptionMonitor und OscamDiscovery
- Polish und Bug-Fixes basierend auf Community-Feedback
Über Feedback, Tests auf unterschiedlichen Setups (DVBViewer-Versionen, MDAPI-Hosts wie ProgDVB) und Verbesserungsvorschläge freue ich mich sehr.
Viele Grüße,
prof-abdo
Code:
Anhänge
Sie müssen registriert sein, um die Liste der Anhänge zu sehen
Zuletzt bearbeitet: