MLD-5.x > General

Kanal umschalten vor einer Aufnahme mittels Skript

(1/3) > >>

warp10:
Hallo zusammen,

bevor ich zu meinem Problem komme, hier kurz mein Setup: Ich verwende einen SAT>IP Server (Telestar Digibit R1) mit der satip-axe Firmware. Der Digibit bekommt sein Antennensignal von einem TechniRouter 5/1x4 (Unicable Router). Auf der VDR-Seite verwende ich dann einen Banana-Pi als VDR-Server und zwei RPi2 als VDR-Clients.

Das ganze läuft dank der o.g. satip-axe Firmware super - bis auf folgendes Problem:

Wenn alle Tuner vom Digibit im standby sind, hat natürlich der TechniRouter keine Versorgungsspannung mehr. Wenn jetzt von irgendeinem VDR eine Kanalanforderung kommt, werden die Unicable-Kommandos vom Digibit losgeschickt, allerdings scheint das so schnell zu gehen, dass der TechniRouter nocht nicht voll da ist, da er ja im Zuge des "Aufwachens" des Tuners ja erst seine Versorgungsspannung bekommt. Ich habe das auch mal als Issue auf Github eingestellt.

Zum TV schauen ist das natürlich kein Problem, dann schaltet man einfach am Anfang kurz einen Kanal weiter und dann läuft alles wie gewünscht.
Problematisch wird es bei einer Timer-Aufnahme: Der Timer fordert einen Kanal an, der Digibit fordert diesen beim Technirouter an aber der ist noch nicht voll da und bekommt es nicht mit. Ergebnis: eine Aufnahme mit 0 Byte... Mein aktueller Workaround: Ich programmiere zu jeder Aufnahme eine kurze Aufnahme (1 Minute) auf einem anderen Transponder, damit der TechniRouter aufwacht. Das ist natürlich ziemlich nervig.

Meine Idee war, ein "before"-Recording Skript zu nutzen, welches einen Kanal anfordert. Folgendes Skript habe ich getestet (liegt im Ordner /etc/vdr/recording.d/


--- Code: ---#!/bin/sh
case "$1" in
     before)
            svdrpsend.sh 'CHAN 2' >/dev/null
            ;;
esac

--- End code ---

Leider führt das nach 60s zu einem Neustart des VDR (watchdog...). Kanal 2 wird auch nie angefordert, dass sehe ich auf dem Digibit. Wenn ich das Skript manuell auf der Konsole starte, funktioniert es.
Hat jemand eine Idee?

Danke und viele Grüße,
Thorsten

BobW:
Hallo,

versuche mal -d als Parameter mitzugeben.

BobW

clausmuus:
Hi,

ich vermute, dass an dieser Stelle die svdrpsend Schnittstelle blockiert ist.
Versuche es mal mit dem Parameter -d beim svdrpsend.sh Befehl. Ich habe aber die Befürchtung, dass dies auch nicht hilft, weil dann die Umschaltanforderung erst nach dem Aufnahme Start ankommt.
Eventuell geht es aber, wenn Du das restfulapi Plugin für's Umschalten verwendest. Ich glaube das wird nicht blockiert.
Vermutlich solltest Du nach dem Umschalten auch noch ein "sleep 1" einbauen, damit wirklich genug Zeit für's aufwachen ist.

Claus

warp10:
Hi,

danke für die Tipps. Bei der Variante als Hintergrundprozess (-d) wird zwar umgeschaltet, aber leider zu spät - der Timer schaltet vorher bereits um. Vermutlich ist in der Tat die svdrp-Schnittstelle blockiert und dann kommt der Umschaltbefehl zwar, aber erst nachdem alles vorbei ist.
Wie kann ich denn am einfachsten die restful-API verwenden? Hatte an wget gedacht, z.B.:


--- Code: ---wget --method=POST http://IP:8009/remote/switch/S19.2E-1-1019-10301
--- End code ---

allerdings kennt die wget Version von MLD den Parameter "--method" nicht. Oder kann ich das plugin direkt ansprechen?

Danke und Grüße,
Thorsten

clausmuus:
Doch, die kennt post, und zwar wenn Du per "--post-data DATA" die DATA Daten übergibst, also z.B.:

--- Code: ---wget --post-data "x=1111&y=222" http://IP:8009/remote/switch/S19.2E-1-1019-10301
--- End code ---
oder wenn keine Daten gesendet werden brauchen:

--- Code: ---wget --post-data "" http://IP:8009/remote/switch/S19.2E-1-1019-10301
--- End code ---

Claus

Navigation

[0] Message Index

[#] Next page

Go to full version