in Plugin Nutzeraktivität feststellen

  • Hi


    Ich hoffe ich bin mit meinem Anliegen hier im richtigen Forum. Falls nicht, bitte verschieben.
    Ich wollte mal fragen, wie ich in einem eigenen Plugin die Aktivität eines Nutzers feststellen kann.


    Ich wollte ein bestehendes Plugin erweitern, das seine Funktion anhand der Nutzeraktivität steuert.
    Sprich: Wenn z.B. der VDR per Wakeup für eine Aufnahme startet (der Nutzer also inaktiv ist) soll eine bestimmte Aktion ausgeführt werden. Dagegen soll nix passieren, falls der Nutzer den VDR gestartet hat um z.B. ein Aufnahme anzuschauen.


    Ich habe mich schon mal im Quellcode vom VDR umgeschaut und die shutdown.h scheint das zu sein, was ich suche. Leider weiß ich nicht, wie ich an die Informationen rankomme. Hat einer Hinweise für mich?


    Gruß
    Sven

  • Du bist schon auf der richtigen Spur:


    ShutdownHandler.IsUserInactive() meldet dir, ob gerade kein 'interaktiver' Nutzer vorhanden ist. In dieser Situation wartet VDR vermutlich auf das Ende einer Aufnahme, oder ähnliches.


    ShutdownHandler.IsUserInactive(time(NULL)+5*60) prüft das gleiche, nur für 5 Minuten in die Zukunft.


    GetUserInactiveTime() liefert den Zeitpunkt, zu dem VDR in den inaktiv-Modus wechseln wird bzw gewechselt ist. Oder 0, falls der VDR nie selbst ausschaltet.



    Gruß,


    Udo

  • Ich bräuchte genau diese Funktion allerdings für die Bash. Gibts da irgendwas?


    Grüße
    Fux

    Hardware: Asus M3N78-EM µATX GF 8300 | AMD Sempron 140 | Display VFD USB MDM166A | DVB-S2 TT-3600 USB | RAM 1 GB | WD20EARS 2 TB
    Software: yaVDR 0.5

  • Hallo Cokker,


    wie auch Fux bin ich auf der Suche nach einem Plugin, welches eine Abfrage der Nutzeraktivität (bzw. den allgemeinen Status) von aussen zulässt. Das könnte entweder über einen UNIX-Socket, ein Netzwerk-Socket, eine Datei oder aber am elegantesten über DBUS geschehen.


    Hättest du vielleicht Lust dein Plugin in zwei unterschiedliche aufzuspalten, so dass eine Version einfach nur den aktuellen Status von VDR zur Verfügung stellt? Wie du siehst ist die Nachfrage ja da :)

  • Nachdem die Abfrage vom VDR mit meinen Programmierkenntnissen nicht wie gewollt geklappt hatte, habe ich lirc (Datei irexec.c) minimal gepatcht. Jedes mal wenn die Fernbedienung betätigt wird, wird diese Zeit (Unix-Zeit) in einer Datei auf einer Ramdisk abgelegt. Diese Datei lese ich dann aus, um die letzte Aktivität zu ermitteln und entsprechende Aktionen auszuführen.


    Hier die entsprechende Ergänzung. Eventuell hilft das auch mal jemanden.



    Gruß
    Fux

    Hardware: Asus M3N78-EM µATX GF 8300 | AMD Sempron 140 | Display VFD USB MDM166A | DVB-S2 TT-3600 USB | RAM 1 GB | WD20EARS 2 TB
    Software: yaVDR 0.5

    2 Mal editiert, zuletzt von Fux ()

  • Hmm, das reicht mir aber noch nicht ganz. Ich muss auch wissen ob gerade irgendwas aufgenommen wird. Also nicht nur Nutzeraktivität sondern auch VDR-Aktivität.


    Nur so nebenbei: Du hättest irexec nicht patchen müssen. LIRC stellt die IR-Eingabe über einen Socket bereit. Da kannst du einfach mitlesen. Jedesmal wenn Daten kommen hat der Nutzer nen Button gedrückt. Wenn du das ganze mit nem Skript ausliest und damit dann deine Datei aktualisierst, sparst du dir das LIRC patchen wenn ein Update kommt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!