Könnte ich das so realisieren?
server rpi4:
========
-Pstreamdev-server
client rpi2:
========
--lirc
-Pstreamdev-client
-Prpihddevice
Könnte ich das so realisieren?
server rpi4:
========
-Pstreamdev-server
client rpi2:
========
--lirc
-Pstreamdev-client
-Prpihddevice
QuoteOder den rp4 als Server nutzen. Und einen rpi<4|>1 als client. Geht gut!
Das ist eine super Idee
Ich habe noch einen rpi2 rumliegen, damit werde ich es ausprobieren. Ich möchte das ganze 24/7 laufen lassen und hoffe, dass die beiden pis es überstehen.
Danke foobar42 und Gruß Dietrich
Danke für die Antworten. Schade, dass es noch nichts für den rpi4 gibt. Dann muss ich eben warten oder einen rpi3 anschaffen.
Gruß Dietrich
Hi Liste,
beim Start mit rpihddevice Plugin auf meinem rpi4 erhalte ich folgende Fehlermeldung:
vdr --lirc -c /var/lib/vdr -v /home/pi/VDR/video -L /usr/local/lib/vdr -Prpihddevice
* failed to add service - already in use?
Kann mir jemand helfen? Oder gibt es eine andere Lösung: evtl. ein anderes Plugin für die Ausgabe?
Dietrich
Danke für die Antwort. Das hört sich ja nicht so gut an, denn ich habe mir den PI 4 nur für den VDR angeschafft, mit Argon one Gehäuse und das war zusammen nicht so ganz billig.
Woran liegt das? Ist es der fehlende Decoder? Sollte es doch eine (Software) Lösung geben, würde ich die gerne einsetzen.
Hi,
ich habe auf einem Raspberry PI 4 VDR mit einem "SkyTV Ultimate - DVB-S/S2/S2X USB Tuner" von Sundtek neu installiert. Mit Raspbian Buster.
Leider habe ich keine TV Ausgabe auf meinem Fernseher. VDR ist ordnungsgemäß gestartet, ebenso der Treiber von Sundtek. Als Ausgabe erscheint lediglich die Ausgabe von der Installation (offenbar XFCE), die ich mit der Maus bedienen kann. Lirc ist installiert und richtig eingerichtet.
Kann mit jemand helfen?
root@pi4:~# systemctl status vdr.service
● vdr.service - Video Disk Recorder
Loaded: loaded (/lib/systemd/system/vdr.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-05-17 10:53:58 CEST; 43min ago
Process: 362 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS)
Process: 815 ExecStartPre=/bin/sh /usr/lib/vdr/merge-commands.sh commands (code=exited, status=0/SUCCESS)
Process: 825 ExecStartPre=/bin/sh /usr/lib/vdr/merge-commands.sh reccmds (code=exited, status=0/SUCCESS)
Main PID: 835 (vdr)
Status: "Ready"
Tasks: 5 (limit: 4915)
Memory: 8.5M
CGroup: /system.slice/vdr.service
└─835 /usr/bin/vdr -u vdr --watchdog=60 --lirc --video=/mnt/music/video
Mai 17 11:34:01 pi4 vdr[835]: [2044] epg data writer thread ended (pid=835, tid=2044)
Mai 17 11:34:19 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 46 (EURONEWS FRENCH SD), tp 112226
Mai 17 11:34:40 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 15 (ARD-alpha), tp 112265
Mai 17 11:35:01 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 103 (Sky Cinema Hits HD), tp 112304
Mai 17 11:35:22 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 104 (Sky Cinema Action HD), tp 112382
Mai 17 11:35:43 pi4 vdr[835]: [80B blob data]
Mai 17 11:36:04 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 44 (N24 DOKU), tp 112460
Mai 17 11:36:25 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 2 (SAT.1), tp 112544
Mai 17 11:36:46 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 73 (sonnenklar.TV HD), tp 112574
Mai 17 11:37:07 pi4 vdr[835]: [867] frontend 0/0 timed out while tuning to channel 50 (Sky News Intl), tp 112604
Display More
root@pi4:~# systemctl status sundtek.service
● sundtek.service - Sundtek MediaTV
Loaded: loaded (/lib/systemd/system/sundtek.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2020-05-17 10:53:53 CEST; 39min ago
Process: 369 ExecStart=/opt/bin/mediaclient --start=4 (code=exited, status=0/SUCCESS)
Main PID: 369 (code=exited, status=0/SUCCESS)
Tasks: 9 (limit: 4915)
Memory: 4.7M
CGroup: /system.slice/sundtek.service
├─806 /opt/bin/mediasrv -d --pluginpath=/opt/bin
└─807 /opt/bin/mediasrv -d --pluginpath=/opt/bin
Mai 17 10:53:52 pi4 systemd[1]: Starting Sundtek MediaTV...
Mai 17 10:53:53 pi4 systemd[1]: Started Sundtek MediaTV.
root@pi4:~
Display More
Hallo an alle die geholfen haben:
Fehler gefunden: seahawk1986 gab den entscheidenden Tipp. Im shutdown script wird ein eval mit dem Return-Wert von meinem Python Script ausgeführt. Und das sind alle meine Print-Ausgaben von Python. Und daran "hat er sich verschluckt".
Nach dem Auskommentieren aller Prints wurde der VDR-Shutdown ordnungsgemäß durchgeführt.
Vielen Dank und Gruss
Dietrich
danke @seahawk1986 für all die Hilfe. Interessant ist das script zur Ausführung der shutdown hooks. Um es zu verstehen benötige ich etwas Zeit. Ich melde mich wieder.
Hier die Ausgabe ins syslog:
Hier ein syslog Auszug:
Sep 26 16:39:42 vdr vdr: [2872] confirmed
Sep 26 16:39:42 vdr vdr: [2872] next timer event at Mon Sep 26 20:12:00 2016
Sep 26 16:39:42 vdr vdr: [2872] executing '/usr/lib/vdr/vdr-shutdown.wrapper 1474913520 12738 5 "Wem die Stunde schlägt" 1'
Sep 26 16:39:42 vdr vdr: [2872] saved setup to /var/lib/vdr/setup.conf
Sep 26 16:39:42 vdr vdr: [2872] max. latency time 7 seconds
Sep 26 16:39:42 vdr vdr-shutdown: executing /usr/share/vdr/shutdown-hooks/S90.apu-wakeup
Sep 26 16:39:42 vdr S90.apu-wakeup: start: /usr/share/vdr/shutdown-hooks/vdrclient.py
Sep 26 16:39:42 vdr S90.apu-wakeup: ['/usr/share/vdr/shutdown-hooks/S90.apu-wakeup', '1474913520', '12738', '5', 'Wem die Stunde schl\xc3\xa4gt', '1']
Sep 26 16:39:42 vdr S90.apu-wakeup: Next Wake UP in seconds: 12738 seconds
Sep 26 16:39:42 vdr S90.apu-wakeup: normal end
Sep 26 16:40:38 vdr vdr: [2904] changing name of channel 2044 from '395 - 15:00,;' to '395 - 16:45,;'
Sep 26 16:40:38 vdr vdr: [2904] changing name of channel 2045 from '378 - 15:15,;' to '378 - 17:00,;'
Display More
Es ist das einzige Script war unter
/usr/share/vdr/shutdown-hooks
aufgerufen wird.
Alles was unter:
....vdr S90.apu-wakeup: ....
aufgeführt ist schreibe ich im Script ins syslog.
(S90.apu-wakeup ist das Python script.)
ich kopiere das Script nach /usr/share/vdr/shutdown-hooks/S90.wakeup.py
Dort wird es bei shutdown mit den Parametern:
(1) next timer in seconds (from 1970/01/01)
(2) next in seconds from now
(3) next title
(4) shutdown forced
aufgerufen. Ich beende das Script mit sys.exit(0)
Moin moin,
ich schreibe an einem Shutdown-Hook mit Python. Damit verbinde ich mich per TCP/IP mit einem Server der ständig läuft. An diesen Server sende ich die wake-up Zeit.
Nach Ablauf der Zeit wird dann per Wake-On-Lan der VDR gestartet.
Das funktioniert auch sehr gut, nur schaltet sich der VDR nicht aus, obwohl ich das Script mit sys.exit(0) beende.
So rufe ich meinen Server auf:
....
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = (HOST, PORT)
sock.connect(server_address)
....
Kann es sein, dass ich in einem Shutdown Hook keine Socket-Aufrufen absetzen darf? Oder funktioniert es grundsätzlich nicht mit Python?
Gruß Dietrich
Hi,
ich benutze erfolgreich Frank Jepsens Wake-up modul von k-data. Leider funktioniert bei mir "wake on ring" nicht immer zuverlässig. Daher möchte ich gerne über ein Relais den Power Button direkt schalten.
Kann mir jemand sagen, wie ich da vorgehen muss?
WOR ist ja an X1 Pin 8 und an DSUB Pin 9 angeschlossen und wird vom MAX232CPE angesteuert. Kann ich an X1 Pin8 direkt ein Relais 5V anschließen? Ich bin mir nicht so ganz sicher und hoffe nichts zu zerstören, vor allem nicht den MAX232.
Viele Grüße
Dietrich
Das hört sich alles sehr gut an und auch ich bin sehr daran interessiert. Mal so auf die Schnelle ein Plugin zu schreiben ist einfach zu verlockend (kann ja auch "Rapid Prototyping" sein; wenn es funktioiniert, kann man es ja immer noch in C/C++ erstellen, wenn Performance gewünscht wird).
Ich fürchte nur, dass das mit SWIG im ersten Ansatz zu umfangreich wird (eierlegende Wollmilchsau). Gibt es Alternativen?
Hi,
danke FireFly für den Hinweis zu den Recording commands. Hatte keine Ahnung davon und werde es mal ausprobieren. Für mein Problem komme ich damit aber sicher nicht weiter.
Der Hinweis zur Klasse cMenuText ist sicherlich genau der richtige. Ich werde es einsetzen und dann sehen ob es passt. Vielen Dank
mfg
dietrich
Hi,
danke @avjui. Leider kann ich mit "Punkt commands" nichts anfangen. Wie handle ich so etwas?
Es geht mir eigentlich darum, wie ich über ein Menu beliebigen Text ausgeben kann.
Der Hintergrund: Ich möchte in einem Plugin "Still Pictures" anzeigen und über eine Info Taste Erläuterungen zu diesem Bild ausgeben. Es soll nur Text sein, den ich nicht verändern will.
mfg
dietrich
Hi,
ich möchte in einem Plugin Text über ein Menü ausgeben. So ein Menü, wie es ausgegeben wird, wenn der kInfo Key beim TV sehen betätigt wird. Oben steht das Datum, dann Titel der Sendung und eine kurze Inhaltsangabe über die Sendung.
Ist sicher trivial, aber ich kann beim besten Willen nicht so das richtige finden. Vielleicht kann jemand mir die Stelle nennen, wo dieses Menü erzeugt wird.
Ich hab mal ein screenshot beigefügt.
mfg
dietrich
Hi,
vielen Dank für all die Antworten. Jetzt weiß ich wie es funktioniert und kann weitermachen.
Grüße Dietrich
Hi,
vielen Dank für die Antworten.
QuoteOriginal von egal
Naja, abhängig von einem 'Zustand' kann ich doch im eigenen plugin dann dies oder jenes Menu oder oder oder aufrufen.
Ist das so? Was bedeutet 'Zustand'? Den kann ich mir doch nicht aussuchen.
Wenn der Thread meine Arbeit getan hat, kann ich mit dem Aufruf cRemote::CallPlugin("mypluginname") sehr gut leben.
Nur wie ist es mit der Aussage von methodus:
QuoteOriginal von methodus
cRemote::CallPlugin erzeugt doch meiner Meinung nach eine Call-Schleife, oder irre ich? Macht also nur sinn, wenn man sich nicht auf das eigene Plugin beziehen will, sondern ein anderes aufruft.
Kann jemand zu der evtl. auftretenden Call-Schleife etwas sagen? Denn das wäre ja tötlich.
Und noch eine Frage: Welche Methode vom Plugin wird aufgerufen, wenn ich mich vom thread mit cRemote::CallPlugin("mypluginname") aufrufe?
dietrich
Hi,
ich habe mal eine (ganz einfache triviale) allgemeine Frage zur Plugin-Programmierung: Wie kann ich aus einem cThread die Arbeit fortsetzen?
Ich möchte beim Aufruf von "MainMenuAction" eine längere Action (Socket connection zu einem anderen host) ausführen. Das werde ich in einem cThread machen, denn aus der "MainMenuAction" Methode soll ja sofort zurückgekehrt werden. Beim Starten des Threads werde ich den Anwender auf dem Menu informieren (im cOsdMenu beim MainMenuAction Aufruf).
Wenn jetzt der thread beendet ist (ich habe den host gefunden usw.), wie kann ich dann die Arbeit fortsetzen, d.h. etwas auf dem Screen ausgeben um den Anwender zu informieren. Das Plugin wird ja nicht immer aufgerufen und wenn der thread beendet wird kann ich doch nicht einfach was machen (wurde ja nicht vom main aufgerufen).
Ist sicherlich trivial, aber ich kann nicht weiter.
Viele Grüße
dietrich
Danke wilderigel,
das war mein Fehler. Nachdem ich die remote.conf auf dem SERVER mit XKeySym-Einträgen versehen habe läuft es so wie erwartet.
Super
MfG
dietrich