Aktuelles TV-Programm in FHEM

Begonnen von Kuzl, 20 Oktober 2014, 20:41:43

Vorheriges Thema - Nächstes Thema

RoBra81

Zitat von: ChHerrm am 08 Oktober 2015, 11:20:45
Ein letztes Problem habe ich noch, was auch schon mehrfach angesprochen aber scheinbar noch nicht abschließend gelöst wurde: Die Sonderzeichen (s. Anhang).

Ich verwende einen Raspberry Pi 2 und verwende UTF-8. Auch nach mehreren Stunden werden diese Zeichen nicht aktualisiert. Es hat jedoch schon mal funktioniert, bevor ich das Ganze ausgebaut und readingsGroups umbenannt habe. Kann es damit irgendwas zu tun haben?

Also ich habe für meine ReadingsGroups eine Funktion geschrieben, die einen Zeilenumbruch setzt und die Sonderzeichen korrigiert:

myUtils:
use HTML::Entities;

sub
wrapLine($$)
{
  my ($string, $maxLength) = @_;
  $string = decode_entities($string);
my @stringParts = split(/ /, $string);
  my $actRowLength = 0;
  my $resultString = '';
  while (scalar(@stringParts) > 0) {
  my $tempString = shift @stringParts;
    if ($actRowLength > 0)
    {
    if (($actRowLength + length($tempString)) > $maxLength)
      {
      $actRowLength = 0;
        $resultString .= '<br>';
      }
    }
    $resultString .= $tempString;
    $actRowLength += length($tempString);
    if (scalar(@stringParts) > 0)
    {
    $resultString .= ' ';
    $actRowLength += 1;
    }
  }
  if ($resultString eq '')
  {
  return ' ';
  }
  else
  {
  return $resultString;
  }
}


ReadingsGroup:
attr DG.wz.TV.WohnzimmerTV.RG.Control.Page1 valueFormat {wrapLine($VALUE, 50)}

Ronny

ChHerrm

Perfekt, das klappt optimal :D

Im Anhang mal der komplette Code meiner fertigen TV-Anzeige falls es jemandem mal weiterhilft.
Danke für die Hilfe!

Grimm80

#632
Hier mal ein schnellerer Weg um an die Icons zu kommen:



cd /opt/fhem/www/images/default/tvmovie

wget -nd -r -l 1 -A png -e robots=off http://images.klack.de/images/stories/stations/



damit werden alle PNGs direkt runter geladen.  ;D
Einfach der Reihe nach auf der SSH-Konsole ausführen.
Am Ende dann noch in FHEM "set WEB rereadicons".

Adriano

Zitat
wget -nd -r -l 1 -A png -e robots=off http://images.klack.de/images/stories/stations/details/

sieht bei mir besser aus ;) Danke trotzdem!

Adriano

#634
Toll wäre es jetzt noch gleich die imdb Bewertung mit anzeigen zu können. Über http://omdbapi.com/

Adriano

#635
Okay habe es hinbekommen. Ihr braucht das cpan perl Modul XML:Simple, dann:

# zusätzlich in 99_myUtils.pm
use XML::Simple;
use LWP::Simple;

######## Get OMDB Rating ############
sub
OMDBRating

my $filmname = shift;
my $contents = get("http://www.omdbapi.com/?t=$filmname&y=&plot=short&r=xml");
my $p1 = new XML::Simple;
my $data = $p1->XMLin($contents);
return "$filmname ($data->{movie}->{imdbRating})";
}


#fhem.cfg

#---------Start:ABENDprogramm---------
define TV_Abend HTTPMOD http://www.klack.de/fernsehprogramm/2015-im-tv/0/-2/pay.html 3600
attr TV_Abend userattr readingsName_SkyCinema24_Abend readingsName_SkyCinemaHits_Abend readingsName_SkyCinema_Abend readingsRegex_SkyCinema24_Abend readingsRegex_SkyCinemaHits_Abend readingsRegex_SkyCinema_Abend stateFormat timeout verbose
attr TV_Abend readingsName_SkyCinema24_Abend SkyCinema24_Abend
attr TV_Abend readingsName_SkyCinema24_Abend_Original SkyCinema24_Abend_Original
attr TV_Abend readingsName_SkyCinemaHits_Abend SkyCinemaHits_Abend
attr TV_Abend readingsName_SkyCinemaHits_Abend_Original SkyCinemaHits_Abend_Original
attr TV_Abend readingsName_SkyCinema_Abend SkyCinema_Abend
attr TV_Abend readingsName_SkyCinema_Abend_Original SkyCinema_Abend_Original
attr TV_Abend readingsRegex_SkyCinema24_Abend title="Sky Cinema \+24"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
attr TV_Abend readingsRegex_SkyCinema24_Abend_Original title="Sky Cinema \+24"><img[\w\W]*?Original-Titel:\s*(.*?)\s*<br/>
attr TV_Abend readingsRegex_SkyCinemaHits_Abend title="Sky Cinema Hits"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
attr TV_Abend readingsRegex_SkyCinemaHits_Abend_Original title="Sky Cinema Hits"><img[\w\W]*?Original-Titel:\s*(.*?)\s*<br/>
attr TV_Abend readingsRegex_SkyCinema_Abend title="Sky Cinema"><img[\w\W]*?<div class="content">\s*<a[\w\W]*?>\s*(.*?)\s*</a>
attr TV_Abend readingsRegex_SkyCinema_Abend_Original title="Sky Cinema"><img[\w\W]*?Original-Titel:\s*(.*?)\s*<br/>
attr TV_Abend room System
attr TV_Abend stateFormat mein_TV_Abend: SkyCinema_Abend
attr TV_Abend timeout 20
attr TV_Abend verbose 1

#Create Web UI Prime Time Programm
define TV_Abend_Abend readingsGroup <Sender>,<20:15 Uhr>, <Original> \
TV_Abend:SkyCinema_Abend,SkyCinema_Abend_Original \
TV_Abend:SkyCinema24_Abend,SkyCinema24_Abend_Original \
TV_Abend:SkyCinemaHits_Abend,SkyCinemaHits_Abend_Original
attr TV_Abend_Abend alias TV_Abendprogramm_Ab20Uhr
attr TV_Abend_Abend nameIcon { SkyCinema_Abend => 'tvmovie/sky-cinema', SkyCinema24_Abend => 'tvmovie/sky-cinema-24', SkyCinemaHits_Abend => 'tvmovie/sky-cinema-hits'}
attr TV_Abend_Abend nameStyle style="color:black;; font-weight:bold;; font-size:12px;; text-align:left"
attr TV_Abend_Abend noheading 1
attr TV_Abend_Abend nolinks 1
attr TV_Abend_Abend notime 1
attr TV_Abend_Abend room TV-Programm
attr TV_Abend_Abend style style="font-size:12px"
#attr TV_Abend_Abend valueFormat {OMDBRating($VALUE)}
attr TV_Abend_Abend valueFormat {( index($READING,"_Original") > 0)?OMDBRating($VALUE):$VALUE}
#---------Stop:ABENDprogramm---------


Nur die wichtigsten Änderungen zu  jnewton957 aufgeführt zu. Wenn jemand mehr Hilfe braucht einfach fragen.

Problem: Bei manchen Filmen liefert Klacktv nicht den Originaltitel. Dann springt das RegEx zum nächsten Film. Muss mal schauen. RegEx ist immer so wirr :)

Ascos

Zitat von: ChHerrm am 08 Oktober 2015, 14:29:56
Perfekt, das klappt optimal :D

Im Anhang mal der komplette Code meiner fertigen TV-Anzeige falls es jemandem mal weiterhilft.
Danke für die Hilfe!

Hey,

vielen Dank für deinen Code. Habe nun versucht das alles bei mir auch einzubauen.
Habe die Bilder, wie bei Grimm80 in dem Post unter deinem beschrieben, herunter geladen.
Leider fehlen bei mir ganz viele Bilder.
Woran kann das liegen?
Habe den Code 1zu1 übernommen.

Anbei ein Bild, da einige Bilder ja gehen.

Viele Grüße
Tino
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

kvo1

Hi Tino,
tja die die Namen sind halt anders , ich habe die einfach umbenannt  ;)
KVO1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Ascos

Zitat von: kvo1 am 13 Oktober 2015, 23:23:11
Hi Tino,
tja die die Namen sind halt anders , ich habe die einfach umbenannt  ;)
KVO1

So klein und doch so einfach.
Das war es natürlich.
Vielen Dank :)

Tino
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

Ascos

Hi,

muss mich nochmals melden.
Habe das Skript leider wieder löschen müssen, da sich FHEM 3x aufgehangen hatte.
Habe nun ein volles Log mit folgenden Fehlermeldungen:
2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1904) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1905) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1906) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1907) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1908) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1909) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1910) line 1.

2015.10.14 00:24:30 2: Undefined subroutine &main::wrapLine called at (eval 1911) line 1.


Kann damit jemand etwas anfangen?

Viele Grüße
Tino
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

Adriano

Ja, ich habe es auch wieder entfernt nachdem mein FHEM die Grätsche gemacht hatte. Werde mir nun was auf OS Ebene mit Perl schreiben.

RoBra81


Ascos

Zitat von: RoBra81 am 14 Oktober 2015, 13:04:28
Siehe post #631...

Siehe post #636...
Habe genau das Skript verwendet und es erzeugte die in post #639 erwähnten Fehler...
1x RaspberryPi 3, HMUART, HMLAN
4x HM-CC-RT-DN, 4x HM-Sec-SCo, 4x HM-TC-IT-WM-W-EU, 1 Jeelink, 4 Lacrosse Fühler, 2 LD382A
1x ZBox mit Kodibuntu, mehrere schaltbare Steckdosen

Paul

Zitat von: Ascos am 14 Oktober 2015, 16:02:00
Siehe post #636...
Habe genau das Skript verwendet und es erzeugte die in post #639 erwähnten Fehler...

Ich glaube der erwähnte Fehler kommt nach löschen des Script, so hast du auch in#636 geschrieben.

Denke du hast das attr in der readinggroup nicht gelöscht
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

RoBra81

Hallo,

Die Fehlermeldung besagt, dass er die sub wrapLine nicht gefunden hat. Also hast du entweder die sub nicht in deine myUtils übernommen oder diese hat einen Fehler (z. B. das include aus besagtem Post #631 vergessen)...

Ronny