• Von dbus hab ich null Ahnung. Ich weis nur, dass VDR wohl damit zu steuern geht und dass es ein Plugin dbus2vdr gibt.

    https://github.com/yavdr/vdr-plugin-dbus2vdr

    Das Plugin wird aber nicht mehr weiterentwickelt.

    Meine eigentliche Frage ist, ob man über dbus (ohne Plugin) am VDR Meldungen (Info, Warning oder Error) ausgeben kann?

    Mit dem Plugin geht nur Info (mtInfo)

    Eine Dokumentation zum VDR dbus konnte ich nicht finden

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • Soweit ich weiß war damals das primäre Ziel die svdrpsend MESG "message" Funktion des VDR nachzubauen, weil der VDR damals noch nicht mit mehreren SVDRP-Clients gleichzeitig umgehen konnte und so jedes Skript, das eine Nachricht absetzen wollte da selber dafür hätte sorgen müssen, das erneut zu versuchen.

    Da svdrpsend MESG auch nur mtInfo nutzt, war das gut genug.

    Man könnte das Interface von dbus2vdr um einen neuen Endpunkt erweitern, so dass man da auch noch andere Werte als mtInfo angeben kann - da scheint es ja insgesamt vier zu geben:

    Code: https://git.tvdr.de/?p=vdr.git;a=blob;f=skins.h;h=15c729f2c2389944b7762467a69f8ea3c2e8d1de;hb=HEAD#l37
    enum eMessageType { mtStatus = 0, mtInfo, mtWarning, mtError }; // will be used to calculate color offsets!

    Generell ist DBus eine Schnittstelle zur Kommunikation zwischen Prozessen. Es kann neben dem System-Bus (den das dbus2vdr-Plugin standardmäßig nutzt) auch noch weitere Instanzen geben, die für z.B. die Sitzung eines Benutzers existieren. Eine Anwendung dafür sind Benachrichtigungsdienste: https://wiki.ubuntuusers.de/Benachrichtigungsdienst/ - das Arch Linux Wiki hat da eine Liste von Standalone-Programmen, die man dafür nutzen könnte: https://wiki.archlinux.org/title/Desktop_…ions#Standalone - das läuft dann halt über den X-Server (was nicht alle Ausgabeplugins abdeckt), der VDR selber hat kein DBus Interface.

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Der VDR filtert Messages mit mtStatus raus, also bleiben drei Möglichkeiten - hier mal ein Patch für dbus2vdr, der das nachrüstet:

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Vielen Dank für die Erläuterungen.

    Geht das nicht direkt mit dbus-send an den VDR so wie in dem Beispiel:

    Code
    In the bin-directory you find a helper script for sending dbus messages to the vdr.
    Instead of calling:
      dbus-send --system --type=method_call --dest=de.tvdr.vdr \
                --print-reply /Plugins/<pluginname> \
                de.tvdr.vdr.plugin.SVDRPCommand string:'command' string:'parameter'

    Nur halt mit 'Message' und MessageType?

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • Oh, gleich schon ein Patch! Vielen Dank. Das muss ich dann mal testen, wenn ich wieder mal Zeit habe.

    Kannst Du einen Pull Request machen? Wird bestimmt übernommen ;)

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • Geht das nicht direkt mit dbus-send an den VDR so wie in dem Beispiel:

    Klar geht das, das ist dann halt etwas länger als mit dem vdr-dbus-send Skript - mal zum Vergleich:

    Code
    vdr-dbus-send /Skin skin.SendMessage string:"Das ist eine Info" string:"info"
    dbus-send --system --type=method_call --dest=de.tvdr.vdr --print-reply /Skin de.tvdr.vdr.skin.SendMessage string:"Das ist eine Info" string:"info"
    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke, seahawk1986

    Du könntest "info" als Fallback nehmen, falls kein Type angegeben ist. Bin aber zu lange raus, um zu wissen, ob optionale Parameter bei dbus spezifiziert sind...

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Du könntest "info" als Fallback nehmen, falls kein Type angegeben ist. Bin aber zu lange raus, um zu wissen, ob optionale Parameter bei dbus spezifiziert sind...

    DBus ist da ziemlich unflexibel, https://dbus.freedesktop.org/doc/dbus-api-d…#nullable-types listet da ein paar Möglichkeiten, aber ich sehe da leider keinen Weg das API-kompatibel zu QueueMessage zu gestalten, da kann man sich höchstens mit Variants oder Arrays austoben oder einen leeren String mitschicken, wie das z.B. bei https://github.com/yavdr/vdr-plug…ter/README#L165 nötig ist, wenn man nur ein Argument übergeben will:

    Code
    $ svdrpsend plug softhddevice STAT
    220 yavdr-noble-demo SVDRP VideoDiskRecorder 2.7.3; Sun Feb 23 23:09:18 2025; UTF-8
    910 SuspendMode is NOT_SUSPENDED
    221 yavdr-noble-demo closing connection
    $ vdr-dbus-send /Plugins/softhddevice plugin.SVDRPCommand string:'STAT' string:''
    method return time=1740348300.260114 sender=:1.141 -> destination=:1.237 serial=3882 reply_serial=2
       int32 910
       string "SuspendMode is NOT_SUSPENDED"
    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • dbus-send --system --type=method_call --dest=de.tvdr.vdr --print-reply /Skin de.tvdr.vdr.skin.SendMessage string:"Das ist eine Info" string:"info"

    Funktioniert leider nicht. Hab auch QueueMessage probiert:

    Code
    dbus-send --system --type=method_call --dest=de.tvdr.vdr --print-reply /Skin de.tvdr.vdr.skin.SendMessage string:"message" string:"info"
    Error org.freedesktop.DBus.Error.UnknownMethod: No such method “SendMessage”
    
    
    
    dbus-send --system --type=method_call --dest=de.tvdr.vdr --print-reply /Skin de.tvdr.vdr.skin.QueueMessage string:"Das ist eine Info" string:"info"
    Error org.freedesktop.DBus.Error.InvalidArgs: Type of message, “(ss)”, does not match expected type “(s)”

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • Sicher, dass du den VDR nach Bau und Installation des gepatchten Plugins neu gestartet hast?

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das Plugin hab ich noch nicht probiert. Das war der Versuch das über dbus-send zu machen. Ohne Plugin

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • Das Plugin funktioniert mit dem Patch:

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

  • "info" als Fallback nehmen, falls kein Type angegeben ist

    Hab mal so was eingebaut: https://github.com/MegaV0lt/vdr-p…b548bffebc38482

    Setzt 'info' als Typ, wenn der String leer is'

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte:
    MV_Backup (RSync) | MV_BorgBackup (Borg)

    Skin: Skin FlatPlus  VDR-Add_MSGT

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.3)

    VDR 2.7.3; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    >Systeminfo.txt< [VDR-User #1540]

Participate now!

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