[gelöst] skindesigner und custom tokens

  • Ich möchte mir in einen skindesigner Skin einen eigenen Wert (Status bestimmter Prozesse) als String im Skin ausgegeben. Da sollte ähnlich zu CPU, Load... sein. Ich habe das vdrstats-Skript dazu erweitert, das nun parallel zu vdrpcpu/men noch eine weitere Datei unter /tmp/skindesigner anlegt (mit dem anzuzeigenden Inhalt).


    Wie bekomme ich das nun in das Skin? Bei der Suche bin ich auf customstring1..10 gestossen. Allerdings finde ich keine Beschreibung, wie das einzubauen wäre. Baue ich so etwas:


    Code
    text="Test: {customstring1}"

    kommt im Log immer:


    Code
    skindesigner: invalid text token {customstring1} in expression


    Ich glaube ich bin hier mangels Anleitung komplett auf dem Holzweg. Geht das überhaupt / wie?


    Danke schonmal!

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Wenn ich das hier gitlab.com/kamel5/skindesigner/-/wikis/Structure-of-a-SkinDesigner-XML-File-in-detail#212-custom-tokens richtig verstehe, muss man den Token mit einem svdrp Komando befüllen, damit er dann angezeigt werden kann.

    Nach dem VDR-Start kommt es dadurch wahrscheinlich immer erst einmal zu einer Fehlermeldung bis dann der Token befüllt ist.


    Selbst ausprobiert habe ich das aber auch noch nicht. Muss ich bei Gelegenheit mal machen.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Danke, probiere ich mal aus. Die Beschreibung kannte ich noch nicht, sehr gut :)

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Was mir gerade noch eingefallen ist:

    Du musst in der Zeile wo das (text="Test: {customstring1}") steht auch noch abfragen, ob es den Token gibt: condition="{customstring1}".

    Dann sollte es auch keine Fehlermeldung mehr geben.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Irgendwie funktioniert das hier nch nicht. Das ist die Zeile:


    Code
    <drawtext condition="{customstring1}" x="0" y="0" fontsize="40%" font="{light}" color="{clrText}" text="{tr(vdrdlna)}: {customstring1}" />


    Setze ich einen festen Wert anstatt "{customstring1}" am Ende, kommt eine Anzeige. Setze ich den Wert per:


    Code
    svdrpsend PLUG skindesigner SCST 1 = aktiv

    Ist die Anzeige trotzdem leer obwohl der Wert gesetzt ist:


    Code
    svdrpsend PLUG skindesigner LCTK
    Nov 13 17:56:07 vdr vdr: [1345] skindesigner: custom string token 1 = "aktiv"

    Und auch mit der condition kommt der Fehler im Log. Irgendwie unklar...

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Gehört da bei condition= nicht noch ein isSet(customstring1) oder Ähnliches (!) hin?
    Der Tokeninhalt wird ja wohl nicht direkt true/false enthalten, oder?
    Siehe "Abschnitt Conditions" https://gitlab.com/kamel5/skin…e-in-detail#25-conditions.


    Viel Erfolg!

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

    Edited 2 times, last by davie2000 ().

  • Gehört da bei condition= nicht noch ein isSet(customstring1) oder Ähnliches (!) hin?

    Du hast recht.

    Ist die Anzeige trotzdem leer obwohl der Wert gesetzt ist:

    Das er das nicht ausgibt, kann an der Fehlermeldung liegen, dann ignoriert er die Zeile einfach.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Richtig, natürlich nicht gelesen :S aber das Problem bleibt auch bei diesem Eintrag bestehen:

    Code
    <drawtext condition="isset{customstring1}" y="0" align="center" fontsize="40%" font="{light}" color="{clrText}" text="{tr(vdrdlna)}: {customstring1}" />

    "invalid text token" im Log und keine Anzeige im Skin. Packe ich die condition in die übergeordnete "area", bleibt das Problem das Gleiche.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Sind die Tokens light, clrText und vdrdlna alle vorhanden (in der setup.xml bzw. global.xml) und befüllt?
    Sieht sonst eigentlich gut aus.


    Edit: probier mal den (ungeklammerten) Doppelpunkt wegzulassen.


    Packe ich die condition in die übergeordnete "area", bleibt das Problem das Gleiche.

    Kommt die Meldung dann schon in der area (bei der Condition) oder erst beim drawtext?

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • Alle Tokens sind vorhanden, kommen auch in den Zeilen darüber vor. Auch wenn ich nur {customstring1} ausgebe mit condition kommt der Fehler im Log und nach dem setzen der Variable bleibt die Ausgabe leer.

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

  • Obwohl es anders dokumentiert ist, würde ich doch mal

    svdrpsend PLUG skindesigner SCST customstring1 = aktiv

    ausprobieren.

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

  • OK, ich habe das jetzt selber mal ausprobiert und es funktioniert.:)


    Das Problem ist, man muss sich doch genau an die Anweisungen halten, hier muss ich später wohl mal die Doku überarbeiten...


    Wie geht es:

    Zuerst im xml-File (z.B. displaychannel.xml) einen neuen Abschnitt aufmachen, wie z.B. in "skinskeleton/xmlfiles/displaychannel.xml" zu sehen:

    <customtokens>

    </customtokens>

    Darin können dann die customtokens verwendet werden.

    Die customtokens werden wie schon geschrieben definiert mit:

    svdrpsend PLUG skindesigner SCST 1 = value1

    svdrpsend PLUG skindesigner SCIT 1 = 1

    und abgefragt mit:

    svdrpsend PLUG skindesigner LCTK


    Man kann dann auch bei offenem OSD die Werte mit svdrpsend aktualisieren.


    Grüße

    kamel5

    VDR 2.7.3: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 6TB HD, GT1030, Fedora 40 Kernel 6.11 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Besten Dank. Das mit dem <customtokens> Abschnitt hatte ich nicht gelesen. Probiere ich heute Abend mal aus.


    Und ausprobiert: funktioniert!

    VDR: Silverstone SG05 Lite, ASRock MB H510M-HDV R2.0, I3 10100, 8GB RAM, Ubuntu 22.04, vdr 2.6.4, 120GB SSD, 8TB SSD, Digital Devices Max S8X, Nvidia GT730, IR-WAKEUP USB

    Edited once, last by wtor ().

  • Zuerst im xml-File (z.B. displaychannel.xml) einen neuen Abschnitt aufmachen, wie z.B. in "skinskeleton/xmlfiles/displaychannel.xml" zu sehen:

    <customtokens>

    </customtokens>

    :wand Das hab ich natürlich nirgends gelesen.

    Danke fürs Aufklären!

    MyVDR: yaVDR-Ansible (Ubuntu 20) - softhddevice-openglosd (ffmpeg 2.8) - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 18 - inputstream + amazon vod
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 120 GB SSD | 3 TB HDD

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!