[GELÖST]Aktueller Radiotitel auslesen - hier SWR3

Begonnen von xxsteffenxx, 31 Mai 2016, 20:39:37

Vorheriges Thema - Nächstes Thema

xxsteffenxx

Hallo,
hat jemand schon ne möglichkeit gefunden, den Aktuellen Radio Titel in FHEM anzuzeigen?
zb. für SWR3?

Hatte mich schon in HTTPMOD versucht, aber ich versteh das HTTPMOD Modul nicht, wie ich da auf was filtern kann ....

Ich nutzte AMAD mit dem IntentRadio und da fehlt leider der Titel, jetzt dachte ich kann dies über Umwege anzeigen lassen?
Steffen
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

xxsteffenxx

Ich bin nun glaub einen schritt weiter, auf https://regex101.com/ hab ich getestet

als String
</tr><tr width="100%" bgcolor="#000080" onMouseOver=this.style.backgroundColor="0033CC" onMouseOut=this.style.backgroundColor="#000080"> <td width="30%" nowrap align="left"><font face="Arial" size="2" color="#FFFFFF">01.06.2016 - 09:22:00</font></td> <td width="40%"> <font face="Arial" size="2" color="#FFFFFF"> Walking On Cars - Speeding cars</font> </td> <td width="30%" nowrap align="center"> <font color="#003366" size="3"><small><a target="_blank" style="font-size: 14px; color: #c5c5d8; font-style: bold;

und als RegEx
<font face="Arial" size="2" color="#FFFFFF">([\D\.]+fon)

ergibt [312-349] ` Walking On Cars - Speeding cars</fon`

in FHEM hab ich dann folgendes


Internals:
   BUSY       0
   CFGFN
   CHANGED
   DEF        http://www.surfmusik.de/playlist/swr3.php 600
   Interval   600
   LASTSEND   1464767674.80165
   MainURL    http://www.surfmusik.de/playlist/swr3.php
   NAME       SWR3_Titel
   NR         1035
   STATE      ???
   TRIGGERTIME 1464768274.79974
   TRIGGERTIME_FMT 2016-06-01 10:04:34
   TYPE       HTTPMOD
   addr       http://www.surfmusik.de:80
   buf        HTTP/1.1 200 OK

Attributes:
   event-on-update-reading .*
   readingsName_now now
   readingsRegex_now <font face="Arial" size="2" color="#FFFFFF">([\D\.]+fon)
   userattr   readingsName_now readingsRegex_now


leider kommen keine readings an?
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

FHEm2005

Hallo Steffen,
ich habe Dir das mal für den WDR2 beigefügt:

define wdr2 http://www1.wdr.de/radio/wdr2/index.html 15
attr wdr2 enableControlset     1
attr wdr2 event-min-interval   15
attr wdr2 reading01Name        titel
attr wdr2 reading01Regex       Jetzt läuft:([\s\S][^<]+)
attr wdr2 showError            1
attr wdr2 showMatched          1
attr wdr2 stateFormat          Es wird gespielt :titel
attr wdr2 timeout              5
attr wdr2 userattr             reading01Name reading01Regex
attr wdr2 verbose              0



Der gespielte Titel wird aus der Web-Site ausgelesen. Es ist relativ einfach, weil der gewünschte Teil im Code der Seite auftaucht. An der Aktualisieung muss noch mal gearbeitet werden. Das Internet (IN) ist schneller als die wdr2-Instanz.

Das ist leider bei der SWR3-Web-Site etwas anders. Da wird in ein Template an bestimmten Stellen die entsprechenden Informationen programmgesteuert eingesetzt.
Auf der IN-Seite des SWR3 ist die gewünschte Information laut 'Seitenquelltext' im Firefox hier unter folgeder Sequenz enthalten:

        <span class="jp-text">
          <span class="jp-title"></span>
        </span>


Hierhinein wird softwaremäßig die blaue Information hinzugefügt. Wo diese Information eingefügt und wie sie aussieht, ist über den inpektor von Firefox leicht herauszubekommen:

      <span class="jp-text">
          <span class="jp-title"><span class="title--title">,,Happy people" von Prince Ital Joe; Marky Mark</span></span>
      </span>


Meine Kenntnisse reichen für einen Zugriff auf diese (blauen) Daten nicht aus. Bevor Du IMHO diese Information nicht im Puffer buf sehen kannst, ist ein Arbeiten an einem Regex nicht sinnvoll. Man möge mich bitte korrigieren, wenn ich hier falsch liege.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

FHEm2005

#3
Hallo Steffen,

hier die erforderlichen Informationen für die Surfmusik.de-Seite. Allerdings nennen diese die letzten 100 Titel und hinken etwas hinterher. Egal.

define swr3 HTTPMOD http://www.surfmusik.de/playlist/swr3.php 15
attr swr3 enableControlset     1
attr swr3 event-min-interval   15
attr swr3 reading01Name        titel
attr swr3 reading01Regex       "> ([a-zA-Z][^<]+)
attr swr3 showError            1
attr swr3 showMatched          1
attr swr3 stateFormat          Es wird gespielt :titel
attr swr3 timeout              5
attr swr3 userattr             reading01Name reading01Regex
attr swr3 verbose              0


Viele Grüsse
Eberhard

Edit: Fehler in der Definition.
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

xxsteffenxx

Hallo Eberhard,
vielen Dank für die Vorlage.
Habe heute mittag auch nochmal ein bisschen gebastelt.

Hab es fast geschafft die SWR3 Seite direkt anzuzapfen...

Internals:
   BUSY       0
   CFGFN
   DEF        http://www.swr3.de/startpage/-/id=47310/14mpkol/index.html 10
   Interval   10
   LASTSEND   1464801435.51241
   MainURL    http://www.swr3.de/startpage/-/id=47310/14mpkol/index.html
   NAME       SWR3
   NR         10656
   STATE      ???
   TRIGGERTIME 1464801445.51115
   TRIGGERTIME_FMT 2016-06-01 19:17:25
   TYPE       HTTPMOD
   addr       http://www.swr3.de:80
   buf        HTTP/1.0 200 OK


Attributes:
   reading01Name titel
   reading01Regex <ul id="nowplaying" class="list-unstyled">(.\D+.\d+.*.Weiter zur Playlist<)
   reading02Name playtitel
   reading02Regex color="#FFFFFF"> ([a-zA-Z][^<]+)
   userattr   reading01Name reading01Regex reading02Name reading02Regex


Sieht dann so aus... wenn ich das noch auf die erste Zeile begrenzen könnte dann wäre das gar nicht so schlecht ;-)

Vorerst läuft mal dein Vorschlag ... DANKE
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

jutil

Darf ich mal kurz ein OT einwerfen?
Bekommt Ihr eine Audioausgabe wenn Ihr Fehm auf einem externen Device im Browser ausführt?
Danke und Sorry für OT ;)

FHEm2005

Hallo Jutil,
fhem hat keinen "eingebauten" Player. In mehreren Modulen wird auf installierte Player zurückgegriffen, die entweder als externes Device laufen oder auf dem FHEM-Rechner gleichzeitig laufen (siehe Rubrik "Multimedia").

Gruß
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

FHEm2005

Hallo Steffen,
wenn Du nur einen Titel / Interpret anzeigen möchtest:

[tt]Attributes:
   disable               0
   enableControlSet      1
   reading01Name         Interpret
   reading01Regex        im SWR3 Poplexikon">([a-zA-Z][^<]+)
   reading02Name         Titel
   reading02Regex        > ([a-zA-Z][^<]+)
   room                  Testraum
   showError             1
   showMatched           1
   stateFormat           Interpret - Titel
   userattr              reading01Name reading01Regex reading02Name reading02Regex[/tt]


Ich habe die beiden Readingsnamen nochmal verändert.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

xxsteffenxx

Hallo Eberhard,
vielen Dank so funktioniert es und ist aktuell!

Zitat von: FHEm2005 am 02 Juni 2016, 09:39:51
Hallo Steffen,
wenn Du nur einen Titel / Interpret anzeigen möchtest:

[tt]Attributes:
   disable               0
   enableControlSet      1
   reading01Name         Interpret
   reading01Regex        im SWR3 Poplexikon">([a-zA-Z][^<]+)
   reading02Name         Titel
   reading02Regex        > ([a-zA-Z][^<]+)
   room                  Testraum
   showError             1
   showMatched           1
   stateFormat           Interpret - Titel
   userattr              reading01Name reading01Regex reading02Name reading02Regex[/tt]


Ich habe die beiden Readingsnamen nochmal verändert.

Gruß Eberhard

Grüße Steffen
Raspberry Pi3 mit Jessie lite, 4x Max Thermostat 1x, Fensterkontakt an Cube, Philips Hue für Hue Iris, 433 mhz Sender für Funksteckdosen, AMAD mit S4-Active und Galaxy Tab2 10.1,nanoCUL 868, Homematic Wandtaster. TelegramBot

FHEm2005

Schreibe das [gelöst] in den ersten Beitrag, dann ist es sofort erkennbar, dass der Thread erledigt ist.
Gruß
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN