Fernsehprogramm DOIF (aktuell und primetime | non blocking | minimaler traffic)

Begonnen von mumpitzstuff, 12 Juni 2020, 21:47:48

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Mir ist nicht ganz klar was nicht angezeigt wird. Das Fernsehprogramm, die Icons oder Beides?

Bei der Datei müssen die Rechte/Owner in etwa so gesetzt sein:

-rw-r--r-- 1 fhem dialout  1662 Jun 17 02:32 ard.png


Und beim Verzeichnis tv so:

drwxr-xr-x 2 fhem dialout  4096 Jun 17 01:12 tv

en-trust

Lag tatsächlich an den Rechten, die ich zwar schon gesetzt hatte, vermutlich aber noch nicht im System angekommen sind.

Um die Icons nicht fix zu skalieren, wäre es natürlich besser, diese in fhem flexible zu skalieren. Daher die Frage, an welcher Stelle diese vorgesehen ist. Ich vermute hier....

return "<a href=\"$::FW_ME?cmd=set $device $state$::FW_CSRF\">".ICON("tv/$icon")."</a>";

  sub showIcon
  {
    my ($icon, $device, $state) = @_;
   
    if (defined($device) && defined($state))
    {
      return "<div style=\"height : 50px;\"><a href=\"$::FW_ME?cmd=set $device $state$::FW_CSRF\">".ICON("tv/$icon")."</a></div>";
    }
    else
    {
      return ICON("tv/$icon");
    }
  }

mumpitzstuff

Dort bist du an der richtigen Stelle. Es gibt hier mit Sicherheit Dinge, die man dort besser machen könnte, aber den Code kann ja auch jeder frei anpassen und ist somit auf diese Art flexibel. Mir fehlt an der Stelle ehrlich gesagt das Fachwissen über den ganzen Web Kram. Mein Wissen darüber ist auf dem Stand von vor 20 Jahren eingefroren...  ;D

en-trust

Also so ganz klappt es nicht...

    if (defined($device) && defined($state))
    {
      return "<a href=\"$::FW_ME?cmd=set $device $state$::FW_CSRF\"><span style=\"max-width: 80px; height: 50px;\">".ICON("tv/$icon")."</span></a>";
    }
    else
    {
      return "<span style=\"max-width: 80px; height: 50px;\">".ICON("tv/$icon")."</span>";
    }


Ich vermute das <span> Tag wird von dem <img> überbügelt.

<td align='center' style='border-right-style:solid;border-color:#CCCCCC;border-right-width:1px;' ><span style="max-width: 80px; height: 50px;"><img class=' tv/das erste' src="/fhem/images/default/tv/das%20erste.png" alt="tv/das erste" title="tv/das erste"></span></td>

Vielleicht hat ja noch jemand eine Idee.


Per

Zitat von: mumpitzstuff am 14 Juli 2020, 12:08:37
Ich habe es mir übrigens angesehen und würde erst einmal darauf verzichten das zu übernehmen und zwar aus folgenden Gründen:

1.) Für diesen Anwendungsfall sehe ich keinen essentiellen Mehrwert. Lediglich die Formatierungen von TD könnte man generieren lassen und der Anwender müsste dann nicht mehr manuell daran rum fummeln.
2.) Die Generierung der Templates würde in den sub Bereich rein wandern, der aktuell aber ohnehin schon recht groß ist. Die schöne Trennung zwischen Code für die Ansicht und Code zum generieren der Readings würde verloren gehen.
3.) Der Code ist, meiner Meinung nach, für nicht Programmierer nicht mehr lesbar und damit auch nicht mehr einfach vom Anwender anpassbar bzw. erweiterbar. Es ist mit Sicherheit ein mächtiges Werkzeug, ein Großteil der Anwender wird damit aber massiv überfordert sein.
Ich habe mich für eine Zwischenlösung entschieden: eine Variable. Weiterhin habe ich Font (TR) und Rahmen (TD) getrennt sowie den linken statt dem rechten Rahmen gesetzt.

  my $PRIMEROW = 30;
  $TR{0,31} = "style='color:yellow;text-align:center;font-weight:bold;font-size:18px'";
  $TR{1..($PRIMEROW - 1),($PRIMEROW + 2)..($PRIMEROW * 2)} = "style='font-size:16px'";
  $TR{$PRIMEROW} = "style='border-top-style:solid;border-bottom-style:solid;border-color:#CCCCCC;border-top-width:1px;border-bottom-width:1px;'";
  $TD{0..($PRIMEROW * 2)}{0} = "align='center'";
  $TD{0..($PRIMEROW - 1),($PRIMEROW + 1)..($PRIMEROW * 2)}{1,3,5} = "style='border-left-style:solid;border-color:#CCCCCC;border-left-width:1px;'";

Bei der ersten Zeile geht es (bei mir?) mit der Variable nicht, keine Ahnung, warum.

Wo findet man eine Liste der möglichen Programme und deren Zuordnung zu den .xy-Files? Konkret suche ich die 3. Programme, ComedyCentral und ServusTV.de.

mumpitzstuff

Schau dir mal 3. im ersten Post an. Dort steht drin, das du dir die Datei originale Datei runterladen und dir dort die notwendigen Senderinfos raussuchen musst. Was die Formatierung angeht, muss ich mir das später noch mal ansehen.

Per

OK, habe mal den Channel-Filter auf .* gesetzt und von Null nach meinen Wünschen aufgebaut, jetzt passt es mit den Dritten. Danke für den Tipp.

Per

Und gleich nochwas. Da ich kein webfähiges TV-Device habe, aber IPTV (HorizonGO), habe ich mir das UI angepasst. Eine neue Funktion showIconIP, eine angepasste Vorlage TPL_TVIP und ein neues Reading VIEW1 (frei vergebbar, falls man mehrere URL braucht).

sub showIconIP
{
  my ($icon, $device, $state) = @_;
 
  if (defined($device) && defined($state))
  {
    return "<a href=\"". ::ReadingsVal("$SELF","$device","") =~ s/.state/$state/r ."\" target=\"IPTV\">".ICON("tv/$icon")."</a>";
  }
  else
  {
    return ICON("tv/$icon");
  }
}

## parameter: device name, mode (next or prime), channel name (see xml data file), icon name (filename of channel logo), device name for set command, command
DEF TPL_TVIP(showIconIP("$4","$5","$6")|substr([$1:$2_$3_000_btime],0,5)|unfold([$1:$2_$3_000_title],[$1:$2_$3_000_stitle]."\n\n".[$1:$2_$3_000_desc])|substr([$1:$2_$3_001_btime],0,5)|unfold([$1:$2_$3_001_title],[$1:$2_$3_001_stitle]."\n\n".[$1:$2_$3_001_desc])|substr([$1:$2_$3_002_btime],0,5)|unfold([$1:$2_$3_002_title],[$1:$2_$3_002_stitle]."\n\n".[$1:$2_$3_002_desc]))

setreading doif_TEST VIEW1 https://www.horizon.tv/de_de/tv/channel-asset.html/$state/location/<eigene USER-ID>.html#action=watch

Und schon kann ich aus meinem Browser direkt das Programm aufrufen.
Achja, Syntax im uiTable:
TPL_TVIP($SELF,next,ZDF,zdf,VIEW1,29438503164)
VIEW1 ist der selbstgewählte Readingname für die URL (quasi beliebig viele möglich), 29438503164 ist die ID des Providers für (hier) ZDF-HD.

Da ich jetzt "betriebsblind" bin, stellt Fragen, falls was unklar ist oder ich was vergessen habe!

PS: geht sogar ohne weitere Änderung auf dem (Android-)Handy mit der App...

JudgeDredd

Hallo Zusammen,

ich habe gestern mal begonnen das TV-Programm zu integrieren.
Soweit erstmal kein Problem.

Allerdings habe ich gestern beim Einrichten die EPG Dateien von hier geholt:
http://www.vuplus-community.net/rytec/rytecDE_Common.xz
http://www.vuplus-community.net/rytec/rytecDE_Basic.xz


Heute als ich weitermachen wollte, ist die Quelle schon versiegt.

Frage:
Ist das jetzt purer Zufall, oder kommt es häufiger vor, das man die Quelle wechseln muss ?

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

mumpitzstuff

Das scheint ein dummer Zufall zu sein. Ich habe diese Quelle seit vielen Monaten verwendet.

JudgeDredd

Zitat von: mumpitzstuff am 24 August 2021, 20:05:32Das scheint ein dummer Zufall zu sein. Ich habe diese Quelle seit vielen Monaten verwendet.
Na prima, da hab ich ja mal wieder richtig Glück gehabt  :o

Dann warte ich mal ein paar Tage auf "Heilung", ansonsten muss ich mal nach einer Alternativen Quelle Ausschau halten.
Allerdings habe ich festgestellt, das sich die gleichen EPG-Dateien bei unterschiedlicher Quelle trotzdem minimal bei den enthaltenen Sendern unterscheiden.
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

JudgeDredd

Zitat von: JudgeDredd am 25 August 2021, 10:49:16
Dann warte ich mal ein paar Tage auf "Heilung", ansonsten muss ich mal nach einer Alternativen Quelle Ausschau halten.
Allerdings habe ich festgestellt, das sich die gleichen EPG-Dateien bei unterschiedlicher Quelle trotzdem minimal bei den enthaltenen Sendern unterscheiden.
Falls hier noch jemand mitliest, nur zur Info:
die Quelle sprudelt wieder  :D
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

slupus

Für alle die nach einer funktionierenden Quelle suchen:
http://www.xmltvepg.nl/rytecDE_Basic.xz

Die überall erwähnte Quelle scheint versiegt:
http://www.vuplus-community.net/rytec/rytecDE_Basic.xz

JudgeDredd

Zitat von: slupus am 26 November 2021, 21:08:07
Die überall erwähnte Quelle scheint versiegt:
http://www.vuplus-community.net/rytec/rytecDE_Basic.xz
Die Quelle ist nur umgezogen auf:
http://epg.vuplus-community.net/rytecDE_Basic.xz
http://epg.vuplus-community.net/rytecDE_Common.xz
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)