Fernsehgewohnheiten "aufzeichnen" -> Kann yaVDR den TV erkennen?

  • Hallo!


    Inspiriert von Dales Experiment würde ich auch gerne die Fernsehgewohnheiten unserer Familie aufzeichnen und analysieren.
    Was bei uns aber sehr oft vorkommt ist, dass der TV auf Standbye ist (Bildschirm schwarz) aber der yaVDR läuft (zB weil von dort gerade Musik gestreamt wird).
    D.h. der yaVDR empfängt zwar gerade das Programm xy aber keiner sieht zu - in diesem Fall sollte das Fernsehverhalten NICHT aufgezeichnet werden.
    Aber wie kann der yaVDR erkennen, ob der TV-Bildschirm gerade schwarz ist?


    Im übrigen habe ich mir überlegt, den syslog auszulesen und auf bestimmte Einträge (zB "switched to channel 102") zu "reagieren".
    Sprich, im obigen Fall Datum, Uhrzeit und Sender "notieren" und aus diesen Daten dann später extrahieren, was, wie oft und wie lange geschaut wurde.


    Dale schweigt sich - auch auf Nachfrage - leider zu den Details seiner Umsetzung aus.
    Wie würdet ihr so etwas angehen?
    Gibts viell. schon was (halb)fertiges für den VDR (XMBC funzt offenbar mit trakt.tv, aber ich will mein yaVDR-Frontend behalten)?

    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

  • Da haben wir schon mal was versucht, aber leider ist es nicht so einfach.
    Da müsst du dich mit xrandr und den entsprechenden Events auseinandersetzen. Wird aber auch nicht immer unterstützt vom Treiber und ist auch nicht unbedingt zuverlässig.


    Für das Auswerten des Umschaltens würde ich die DBus-Signale von dbus2vdr nehmen. Damit kannst du ein einfaches externes Programm (z.B. in Python) schreiben, was jedes Umschalten protokolliert. Da musst du dir mal die Parameter in status.h im vdr-Source ansehen, denn die Signale kommen z.B. auch, wenn ein Tuner im Hintergrund umgeschaltet wird, weil der EPG-Scan läuft.


    Lars.

  • Hallo,


    Vieleicht ist das History-Plugin ja so was ansatzweise


    http://projects.vdr-developer.org/projects/plg-history


    Gruß
    Steevee

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • Ich hab das so gelöst, dass ich ein Mikro angeschlossen habe, das (fast) unsichtbar hinter dem Fernseher liegt. Alle x Minuten wird für ein paar Sekunden aufgezeichnet und die Audiodatei analysiert. Ist hier der Pegel hoch genug, ist der Fernseher an. Bei (relativer) Stille ist der Fernseher aus. Ich benutze es, um das Shutdown Script auszulösen.


    Wenns brauchbar ist, kann ich dir ja Details dazu geben.

    yaVDR 0.6 | Acer Revo R3610 | Intel Atom 330 1,6 GHz | 2GB RAM | Nvidia ION | Skystar USB HD

  • Ich hab das so gelöst, dass ich ein Mikro angeschlossen habe, das (fast) unsichtbar hinter dem Fernseher liegt. Alle x Minuten wird für ein paar Sekunden aufgezeichnet und die Audiodatei analysiert. Ist hier der Pegel hoch genug, ist der Fernseher an. Bei (relativer) Stille ist der Fernseher aus. Ich benutze es, um das Shutdown Script auszulösen.


    Wenns brauchbar ist, kann ich dir ja Details dazu geben.


    Das ist ja mal eine wirklich kreative Lösung - da wär ich nie drauf gekommen :tup :tup :tup
    Problem wird bei mir nur sein, das meistens Musik läuft, wenn der TV aus und der yaVDR an ist.
    Aber ich bin sehr interessiert an den Details zu deiner Lösung - viell. kann ich ja einen signifikanten Pegelunterschied zwischen TV-Sound und Musik feststellen.

    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

  • Ob der Fernseher an ist, könnte man auch über so eine Master/slave-Steckdose lösen. Wenn TV an --> Slave durchgeschalten.
    Gibt ja auch solche mit LAN, wo man übers Netz schalten und Zustand prüfen kann.


    Gruß
    Steevee

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • Nur mal so für mich zum Verständnis, welchen Sinn soll die Auswertung der Fernsehgewohnheit haben? Überwachung der Kinder oder sich selber, Marktforschung, oder einfach nur Neugierde?


  • wg. Master/Slave-Steckdose:
    der Fernseher ist ja an, aber eben Standbye (also schwarzer Bildschirm) - glaube nicht, dass eine Steckdosenleiste das erkennen kann.
    Abgesehen davon besitze ich so ein Teil nicht und möchte mir dafür nicht extra eines kaufen.


    wg. netzwerkfähigem TV:
    nein, leider nicht.


    wg. Motivation ( meikelmoeller:(
    Einfach nur Neugierde - mir haben die Auswertungen (bzw. die Graphiken) von Dale so gut gefallen.
    Außerdem interessiert mich schon lange, womit und wann wir unsere Zeit vergeuden ;)

    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

  • Außerdem interessiert mich schon lange, womit und wann wir unsere Zeit vergeuden ;)


    Das ist bei mir ganz einfach: Live-TV wird gar nicht mehr geschaut, nur noch das, was aufgezeichnet wird... :)
    Das Konzept von Live-TV (insbesondere mit Werbung) verstehe ich irgendwie auch gar nicht mehr. Wenn man darauf erst mal ein paar Jahre verzichtet hat, wundert man sich immer wieder, wie man sich sowas antun konnte. Wofür hab ich denn den vdr?


    Lars.

  • Das ist eine interessante Idee dieses Projekt.


    Wenn der TV ein USB Port hat, könnte man die 5V Spannung abfragen.
    Über einen Arduino oder Trinket, dann via Serial an VDR übergeben.


    Aber seit ich meinen VDR habe schaue ich sehr selten das was gerade kommt. Höchstens mal Live Sport. ;)

  • wg. Master/Slave-Steckdose:
    der Fernseher ist ja an, aber eben Standbye (also schwarzer Bildschirm) - glaube nicht, dass eine Steckdosenleiste das erkennen kann.


    Das erkennt auf jeden Fall eine Master/Slave-Steckdiose. Bei den meisten kann man auch den Stand-By-Strom einstellen.
    Der Fernseher wird ja im Standby nicht so viel Strom verbrauchen, wie im Betrieb. Wenn doch, würd ich den Fernseher ausrangieren.


    Gruß
    Steevee

    VDR1: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, TT S2-6400, ...
    VDR2: EasyVDR 2.0.0, MB Asus M4N78 Pro, AMD Athlon II X2 250, DVB-S2 TeVii S464, 2*DVB-S Budget, GraphTFT an VGA, TV an HDMI
    VDR3: EasyVDR 2.0.0, MB Asus M2N-VM HDMI, DVB-S FF1.3, DVB-S Budget, Atric-IR, GraphTFT an FF, TV an DVI
    #VDR4: EasyVDR 0.8.x, DVB-S FF1.3, DVB-S Budget, TV über AV-Board
    sonstige VDR Test-Hardware: Skystar HD2, Touch-TFT, IMON-LCD, Fritz-Box, ...

  • ok, das wusste ich nicht - danke für die Info.
    Aber ich verstehe nicht, was mir das bringen soll: woher weiß dann der VDR, dass der TV jetzt gerade auf Standbye läuft?
    Oder kann der VDR (irgendwie mit Plugin oder so) mit der Steckdosenleiste kommunizieren?
    Sorry, stehe am Schlauch ...


    @USB:
    hat der TV leider auch nicht - wird aber noch eine Weile dauern, bis ich mir einen neuen kaufe.

    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

  • Also mein VDR läuft auch 24/7 und ich würde mir das relativ einfach vorstellen.
    Erstens habe ich ein eigenes BASH script welches, radio, tv, xbmc umschaltet (irgendwie musst du ja auch musik und tv mit deiner Fernbedienung anbekommen). Hier könnte ich schon mitloggen was gerade an bzw. aus ist. Ansonsten was für ein frontend nutzt du denn? Wenn es softhddevice ist, ist dies doch relativ einfach zu erkennen ob an oder aus.


    Code
    svdrpsend plug softhddevice stat


    Für den aktuellen Kanal entweder auch svdrpsend nutzen und sekündlich prüfen:

    Code
    svdrpsend chan


    oder wie gesagt mit dbus2vdr oder ähnlichem.


    Also ich stelle mir das ganze nicht so schwierig vor aber vielleicht habe ich auch nicht alles verstanden :)


    Gruß
    Martin

  • Hmmmm ... ich glaube mal, du hast nicht richtig gelesen, was ich will:
    Ich nutze (seit neuestem) das softhddevice und kann natürlich abfragen, ob der VDR läuft - aber eben nicht, ob der _TV_ im Standby ist oder gerade Bild/Ton vom VDR anzeigt.
    Egal, ob der TV ein Bild anzeigt oder schwarz (standbye) ist, ich bekomme immer "SuspendMode is NOT_SUSPENDED" zurück, weil ja das softhddevice nicht detached ist.


    Das prinzipielle "Aufzeichen was gerade geschaut wird" würde natürlich auch mit einem regelmässig abgesetzten svdrpsend-Befehl funzen.
    Aber mir reicht das sporadische Auslesen des Logfiles im Nachhinein völlig aus - ich muss die Statistik nicht in Echtzeit erheben.

    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

    Einmal editiert, zuletzt von davie2000 ()

  • Ich habe ja gesagt das ich wahrscheinlich nicht alles gelesen/verstanden habe.


    Dann halt eine "dumme" frage :)
    Warum läuft softhddevice wenn der TV aus ist? Das ist weder logisch noch ökonomisch :)
    Nur mal kurz wie es bei mir gelöst ist. Ich habe eine Harmonie Fernbedienung. Dort ist eine Taste für "TV" programmiert, wenn ich diese drücke, wird der Fernseher, der Audio Receiver gestartet und an meinen VDR der Befehl gesendet das softhddevice sich attachen soll. 2 Sekunden später habe ich Bild. Wenn ich auf Aus drücke wird Fernseher, Audio ausgeschaltet und softhdevice deattached (Server läuft wie gesagt 24/7).


    Nur mal so als Anregung aber ich denke das du dieses "Problem" lösen solltest dann ist der Rest ganz einfach.


    Grüße
    Martin

  • Bei mir läuft der Server schon mal NICHT 24/7 - im Gegenteil: wenn der yaVDR nicht gebraucht wird (kein Samba, kein Streaming, kein Fernschauen) soll er sich abschalten (steht im Wohnzimmer).


    Zum Musikhören verwende ich die Raumfeld One Box - die muss ich ohnehin separat einschalten (im Vorbeigehen mit dem Zeh *g*) und das will ich auch so.
    Und die Musik, die auf der Box ausgegeben wird, liegt eben auf einer Freigabe des yaVDR - deshalb läuft der, obwohl der TV im Standbye ist (schwarzer Bildschirm).
    Nach ca. 90 Minuten "Nichtstun" versucht der VDR abzuschalten (WFE) - geht nicht, weil noch Samba-Zugriff aktiv ist (shutdown-hook) - aber softhddevice wird detached.
    DAS kann ich dann - wie von dir gezeigt - abfragen und diese Zeit dann _nicht_ in die Statistik einfließen lassen.


    Aber wie kriege ich mit, das eigentlich schon 90 Minuten vorher keiner mehr aktiv geschaut hat (weil ja der Bildschirm aus ist)?
    Da nützt es mir auch nichts, dass ich mehrere Geräte mit einem Tastendruck ein-/ausschalten kann.


    Bis jetzt gefällt mir die Lösung mit dem Mikrofon am besten. Leider hat sich max676 noch nicht näher geäußert.

    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

  • Das ist ja mal eine wirklich kreative Lösung - da wär ich nie drauf gekommen :tup :tup :tup
    Problem wird bei mir nur sein, das meistens Musik läuft, wenn der TV aus und der yaVDR an ist.
    Aber ich bin sehr interessiert an den Details zu deiner Lösung - viell. kann ich ja einen signifikanten Pegelunterschied zwischen TV-Sound und Musik feststellen.


    Also die Tonspur aufnehmen kannst du mit "arecord", mit "lame" ins mp3 Format konvertieren und mit "mp3gain" kannst du den Pegel auslesen.


    Also aufnehmen und konvertieren:

    Code
    arecord -D hw:0,0 -f cd -d 3 2>/dev/null | lame -r --preset standard - $FILENAME 2>/dev/null


    Und den Pegel auslesen (mp3gain gibt dir mehrere Infos, den Pegel musst du dir also greppen):

    Code
    mp3gain $FILENAME | grep 'dB change:' | cut -d' ' -f5 |cut -d'.' -f1


    Was mir da noch einfällt, ich hab mal eine Webcam als Motion Detector verwendet, also wenn keiner im Wohnzimmer ist -> VDR aus. War mir aber dann doch zu Big Brother, also hab ichs wieder verworfen. Du könntest ja eine Webcam auf den Fernseher richten (zB. diese Clip Dinger) und somit feststellen, ob der Fernseher an oder aus ist. Thread gibts hier

    yaVDR 0.6 | Acer Revo R3610 | Intel Atom 330 1,6 GHz | 2GB RAM | Nvidia ION | Skystar USB HD

  • Falls der VDR am Netzwerk hängt, ist das doch überhaupt kein Problem, Du brauchst doch nur eine freundliche Mail an die NSA mir der Anfrage schicken, ob sie Dir nicht freundlicher Weise das Protokoll mit den Fernsehgewohnheiten Deiner Familie zusenden könnten. :lol2


    *SCNR*

Jetzt mitmachen!

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