Weiterentwicklung: Dynamische Senderaktualisierung

Antworten
Benutzeravatar
Janus
NI - VIP
Beiträge: 1149
Registriert: Di 12. Apr 2016, 19:41
Box: HD1, Zee, Neo, Tank, HD51, Duo4K
Been thanked: 2 times

Weiterentwicklung: Dynamische Senderaktualisierung

Beitrag von Janus »

Da neuerdings auch über das UI die Möglichkeit besteht, im laufenden Betrieb die SI-Daten der ServiceDescriptionTables auszulesen und damit Veränderungen gegenüber dem Bestand in services.xml erkennen zu lassen und darauf - mit /tmp/currentservices.xml - entsprechend zu reagieren, möchte ich dieses Feature "dynamische Aktualisierung" gerne (endlich) zu einem befriedigenden Abschluss bringen. ( na ja, eher bringen lassen :wink: )

Über
Menü >Einstellungen > Erweiterte Einstellungen > Kanalliste > Transponder Hinterrundaktualisierung
kann dieses Feature ein- oder ausgeschaltet werden.

Im eingeschalteten Zustand wird der gespeicherte Settings-Stand in services.xml mit dem Ergebnis eines SDT-Scans des gerade aktiven Transponders verglichen. Die gefundene Änderungen werden in /tmp/currentservices.xml gespeichert, und zwar in dem von myservices.xml bekannten Schema, das heißt mit einem Attrbut 'action' welches bei der 'Aktualisierung' die Vorgehensweise steuern soll.
Bisher schon genutzte Werte für 'action' sind
add (zufügen)
replace (ersetzen)
remove (löschen)
Derzeit werden neue Sender per "add" gekennzeichnet, geänderte Sender per "replace" und nicht mehr gefundene Sender per "remove"

Soweit das bisher Vorhandene.
Was noch fehlt, ist das automatische Einarbeiten in die services.xml! (Und das nicht grundlos! Siehe weiter unten)
Wer im Moment damit Testen oder auch nur Spielen will, sollte vorab seine Settings sichern. (sichern ist sicher :grinning: )
Die Einarbeitung der Änderungen geschieht (wie bei myservices.xml) vorerst manuell über:
Menü > Service > Kannallisten neu laden

Wer's nicht macht: Beim nächsten Neustart wird das /tmp-Verzeichnis und damit auch die currentservices.xml gelöscht!
Da würde ich dann aber eher die Hintergrundaktualisierung ausschalten!

Zu den Gründen weshalb das derzeit nicht wirklich vollautomatsch ablaufen kann:

* Die Löschungen werden aktuell nur in services.xml durchgeführt.
Die Services-Referenzen in Bouquets und UserBouquets bleiben erhalten. Da die auch generell erhalten bleiben, wenn sie dann ins Nirwana zeigen, bleiben zwar die über die UserBouquets definierten Programmnummern erhalten, werden aber nicht in der Kanalliste dargestellt.

* Löschungen werden beim ersten 'Nichtfinden' schon vorgesehen.
Es gibt Sender - z.B. im Timesharing - die werden nicht 24/7 in den SI-Daten angegeben. Das würde bei einer Realtime-Aktualisierung ein ständiges Weg<>Da bedeuten.
Dazu habe ich im DB2W schonmal einen Lösungsansatz vorgestellt. Wer also noch Zugang zum DB2W hat...

* Automatisches Löschen der Sender-Referenzen (zusammen mit den Service-Daten, also den Referenz-Zielen) ist nicht anwenderfreundlich.
Oft werden Sender nur auf einen anderen Transponder verschoben oder wandern von einer Satposition auf eine andere, werden mit himmlicher Absicht umbenannt oder sind auch auf einem anderem Empfangsweg (DVB-C, Streaming oder DVB-T2) alternativ zu empfangen. Dafür müsste eine ziemlich listige Prüfung programmiert werden, damit zum Schluß wirkich nur noch die nicht wiederherstellbaren Favoriten gelöscht sind und Handarbeit des Anwenders erfordern.

* Aktualisierungen werden uU von myservices.xml und un-Attributen in ubouquets.xml nachträglich wieder (echt oder virtuell) zurückgesetzt.
Auch das müsste in der oben genannten Prüfung kontrolliert werden.


Noch ein Tipp für's Testen:
Wenn im laufenden Betrieb ein Transponder aktualisiert wird, wird im Infobar die Frequenz in der "Hervorhebungs-Farbe" dargestellt. (Zumindestens bei mir, da ich das und die Signalbalken in dem linken Zusatz-Fensterchen anzeigen lasse)
Antworten

Zurück zu „Entwicklung“