Autor Thema: Fernsehprogramm DOIF (aktuell und primetime | non blocking | minimaler traffic)  (Gelesen 14425 mal)

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1974
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

Offline en-trust

  • Sr. Member
  • ****
  • Beiträge: 624
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");
    }
  }

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1974
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

Offline en-trust

  • Sr. Member
  • ****
  • Beiträge: 624
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.
« Letzte Änderung: 15 Dezember 2020, 12:39:21 von en-trust »

Offline en-trust

  • Sr. Member
  • ****
  • Beiträge: 624
Keiner eine Idee ?

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1662
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.
« Letzte Änderung: 01 April 2021, 15:10:23 von Per »

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1974
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.

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1662
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.

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1662
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...
« Letzte Änderung: 01 April 2021, 00:04:38 von Per »

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 211
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: Hyper-V | CentOS (VM)

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1974
Das scheint ein dummer Zufall zu sein. Ich habe diese Quelle seit vielen Monaten verwendet.

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 211
Das 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: Hyper-V | CentOS (VM)

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 211
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: Hyper-V | CentOS (VM)
Gefällt mir Gefällt mir x 1 Liste anzeigen

 

decade-submarginal