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
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?
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
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.
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
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 ;)
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
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
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
Schreibe das [gelöst] in den ersten Beitrag, dann ist es sofort erkennbar, dass der Thread erledigt ist.
Gruß
Eberhard