Aktuelles TV-Programm in FHEM

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

Vorheriges Thema - Nächstes Thema

Doggiebert

tut alles wie's soll. Ich habe nun auch RoBra81's Lösung eingebaut.
D.h.: cronjob holt sich per wget nun alle 15 min. die beiden Seiten, kombiniert das zu einer HTML-Seite, die ich dann über HTTPMOD vom lokalen Webserver abhole. 100% stabil so far, keine Aktualisierungsprobleme mehr.
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

Rince

Ich greife mal die wget Sache auf:
Wäre es nicht einfacher, den in fhem eingebauten WebServer zu nutzen?
Der ist bei jedem garantiert installiert ;)

Das spart das Installieren und Warten eines weiteren WebServers, sowie System Ressourcen...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

schka17

Grundsätzlich funktioniert das, aber den apache benötige ich sowieso für andere Aufgaben auch (infodisplays), ist deutlich schneller als der FHEM Webserver und ich möchte den FHEM Prozess möglichst entlasten, hat schon genug  zu tun. Bei meinem System ist der Apache von der Resourcenseite vernachlässigbar, die Entlastung von FHEM hat die Stabilität aber deutlich erhöht.


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

RoBra81

Ich habe es zuerst mit dem FHEM-Webserver probiert, aber nachdem sich bei zwei Versuchen FHEM zweimal komplett aufgehängt hatte (beim define des HTTPMOD), bin ich auf den separaten Webserver umgestiegen.

Tommy82

Hi, wie oben erwähnt funktioniert das Umschalten beim klicken auf einen Sender problemlos, nur nicht wenn ich auf den nachfolgenden Sender klicke, was könnte da noch falsch sein? Dazu kommt das ich die ganze Zeit jede Menge Fehlermeldungen in log habe, wie im Anhang zu sehen, was ist da noch falsch?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

RoBra81

Kannst du mal die Definition des HTTPMOD (für Pro7 sollte reichen) und der ReadingsGroup posten?

Doggiebert

Zitat von: Rince am 12 November 2014, 06:51:56
Wäre es nicht einfacher, den in fhem eingebauten WebServer zu nutzen?
Der ist bei jedem garantiert installiert ;)
Das spart das Installieren und Warten eines weiteren WebServers, sowie System Ressourcen...
War bei mir auch so wie bei RoBra81 - mit dem hab ich's natürlich als erstes probiert, hat sich irgendwie geblockt - HTTPMOD und FHEMWEB scheinen sich da wohl irgendwie in die Quere zu kommen. Und der Webserver war bei meinem Raspi-Image schon dabei, ging also schnell.

Und im Sinne eines "separation of concerns", oder teile-und-herrsche, wie der Lateiner sagt, ist's mir ganz recht, client und server in getrennten Paketen zu haben. Viel lieber wäre es mir, wenn HTTPMOD auch mit File-URLs umgehen könnte oder eine andere Option hätte, alternativ dazu auf ein File zuzugreifen (so wie beim CALENDAR). Wäre u.a. für Tests manchmal hilfreich.
SW: FHEM 5.5, Raspian, XBMC, Testinstallation auf Win7
HW: Raspi B, 32GB SD, enocean Pi, RFXTRX433E, BSC - MwC-32, Onkyo TX-NR709, Samsung UE55F8090, Jung LS-Eno, permundo SmartPlug, KDG-FB 6490cable (ohne FHEM)

Kuzl

wärs nicht noch einfacher gleich ein Modul zu schreiben, das sich die Seite holt und dann selbst mit regex zu phrasen? :D
ich glaub das könnte man mit einem einfachen Socket lösen aber ich bin nicht so fit da drin. Das würde aber das ganze rumgebastle ersparen.
Dann nur noch alle Regex der Kanäle in eine Tabelle und per attribut auswählbar machen.

moonsorrox

Zitat von: Kuzl am 12 November 2014, 11:44:15
wärs nicht noch einfacher gleich ein Modul zu schreiben
entweder dieses, würde ich auch begrüßen, kann aber leider auch nichts dazu beitragen..! :-\ ;)

oder diese wget- und Apache Geschichte etwas deutlicher beschreiben, damit man dies nachvollziehen/-bauen kann. Aber Modul wäre auf jeden Fall der bessere Weg  ;)
aber keiner der Programmierer schaut wohl TV (weil er keine Zeit hat  ;) denn er programmiert ja  :D) und macht es deshalb nicht
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Rince

#219
Ok ok,

wollen wir ein Featurerequest für HTTPMOD schreiben?

Zitat
Featurerequest für HTTPMOD
Ist es möglich, HTTPMOD so zu erweitern, dass er eine lokale Datei parsen kann?

Bis dahin:
ZitatAber Modul wäre auf jeden Fall der bessere Weg
Bin raus, noch nie gemacht. Wenn, dann bastle ich erst ein mplayer Modul :)



Zitatoder diese wget- und Apache Geschichte etwas deutlicher beschreiben
Das ist eigentlich recht simpel:

1. Schritt
wget ist ein nettes Tool, welches dir Dateien aus dem Netz lädt. Quasi ähnlich wie ein WebBrowser, aber ohne eine Anzeige und Verarbeitung der Daten, sondern es speichert die Daten in eine Datei...
Damit bekommst du erst mal ein 1:1 Abbild der Datei auf deinem Rechner.

2. Schritt
Jetzt brauchst du irgend einen weiteren Webserver auf deinem fhem Rechner
Apache ist nur einer von vielen.
Dein Webserver hat ein Verzeichnis, in welchem er die Dateien erwartet, die er zur Verfügung stellen muss. Das kann von WebServer zu WebServer unterschiedlich sein, i.d.R. kann man es konfigurieren.

3. Schritt
Die mit wget runtergeladenen Dateien müssen nun in dieses Webserververzeichnis

4. Schritt
Optional

5. Schritt
Du lässt HTTPMOD nicht auf den externen Server zugreifen, sondern auf deinen lokalen eigenen WebServer

Zusammenfassend:
Du brauchst einen Webserver (ruf doch mal die IP deines fhem Rechners im Browser mit Port 80 auf, statt 8083 => dann siehst du gleich ob schon ein WebServer läuft :)


Das Skript analysiert:
Zitat
wget -O /var/www/jetzt.html http://www.tvmovie.de/tv-programm-jetzt-im-tv.html?tv-stations-count=150
wget -O /var/www/gleich.html http://www.tvmovie.de/tv-programm-gleich-im-tv.html?tv-stations-count=150
Hier wird 2x mit wget in das Verzeichnis /var/www eine Datei runtergeladen. Eine nennt sich jetzt.html, die andere Datei gleich.html.
Als URL von der sich wget das Zeug holen muss, ist die entsprechende tvmovie Seite angegeben, und zwar für 150 Fernsehsender
Die 150 kannst du verändern (Kopiere den Link in deinen Webbrowser => wenn alle gewünschten Sender auftauchen, ist es ok. Wenn welche auf Seite 2 sind, musst du die 150 erhöhen, wenn dir die ersten 80 reichen, kannst du die Zahl auch auf 80 setzen. Spart Downloadzeit und verringert den Netzwerktraffik


Zitat
rm /var/www/alles.html
Hier wird die Datei alles.html gelöscht, damit es im folgenden keinen Fehler gibt


Zitat
cat /var/www/jetzt.html >> /var/www/alles.html
Schreibt den Inhalt von jetzt.html in die Datei alles.html
(könnte man imho auch einfach mit "mv  /var/www/jetzt.html /var/www/alles.html" lösen, aber das ist letztlich egal


Zitat
sed 's/span/spandanngleich/g' /var/www/gleich.html >> /var/www/alles.html
sed ist eine Art automatischer Texteditor mit suchen/ersetzen. Hier wird der String "span" durch "spandanngleich" ersetzt in der Datei gleich.html, die Ausgabe wird an die Datei /var/www/alles.html hinten angehängt

Im Ergebins erhält man so eine Datei alles.html, die beiden runtergeladenen Webseiten enthält, wobei der Inhalt der zweiten Seite (gleich.html) modifiziert worden ist.
Also:
jetzt.html + modifiziertes gleich.html = alles.html


Damit reicht letztlich 1 HTTMOD Aufruf, um beide Webseiten auf einmal in fhem zu sehen bzw. eben die Readings anzulegen.

Ob das der Weisheit letzter Schluss ist, kann ich nicht beurteilen.
Was mir daran weniger gefällt, ist die Tatsache dass es so schwieriger ist eine Art "Umschalten wenn diese Sendung losgeht" zu schreiben.

Also:
Du schaust gerade auf ARD die Tagesschau, der Krimi im ZDF um 20.15 interessiert dich, dann könntest so sofort auf ZDF klicken und das Umschalten passierte nicht sofort, sondern eben um 20.15 Uhr...

Selbiges ist imho sinnvoller wenn es zwei getrennte Seiten sind.

Aber da das noch keiner in fhem umgesetzt hat, ist es zur Zeit quasi egal :)



Was mir sonst noch einfällt:
Ich halte es für schlauer, die Dateien nicht auf der SD Karte im RasPi rum zu schupsen.
Erstens ist es langsam, zweitens ruiniert man sich auf die Dauer seine SD Karte.
Eleganter fände ich es, eine kleine Ramdisk anzulegen (fstab), auf die der Webserver zugreift...

Nachteilig daran ist, dass es bei einem Reset des RasPi Fehlermeldungen im Log gibt, bis wget zum ersten Mal ausgeführt worden ist... (vielleicht könnte man den ersten Abruf auber auch in das fhem Startskript schreiben)


Glückwunsch wer das Posting bis hierher durchgelesen hat, ich hoffe, ich konnte etwas zur Klärung beitragen :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Kuzl

OFFTOPIC:
ZitatWenn, dann bastle ich erst ein mplayer Modu
Kann man nicht schon mit dem TTS-Modul Musikdateien abspielen lassen?  - läuft ja auch über mplayer

Rince

Ja und nein.
Wir haben mehrere Module, die den mplayer nutzen. StreamRadio z.B. auch.
Letztlich machen aber beide eine Audioausgabe. Da scheint der Gedanke nahe, den mplayer Auszuklammern.
Oft kommt der Wunsch nach Bluetoothlautsprechern etc...
Hätten wir ein grundlegendes mplayer Modul, könnten davon sofort alle aufbauenden Module profitieren. Man braucht nicht in jedem Modul das Rad neu erfinden :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

RoBra81

Sehr schöne Zusammenfassung, aber:

Zitat von: Rince am 12 November 2014, 15:03:00
Was mir daran weniger gefällt, ist die Tatsache dass es so schwieriger ist eine Art "Umschalten wenn diese Sendung losgeht" zu schreiben.

Also:
Du schaust gerade auf ARD die Tagesschau, der Krimi im ZDF um 20.15 interessiert dich, dann könntest so sofort auf ZDF klicken und das Umschalten passierte nicht sofort, sondern eben um 20.15 Uhr...

Selbiges ist imho sinnvoller wenn es zwei getrennte Seiten sind.

Aber da das noch keiner in fhem umgesetzt hat, ist es zur Zeit quasi egal :)


das habe ich (wie weiter oben beschrieben) schon mit meiner Eine-Datei-Lösung umgesetzt  :D

Tommy82

Zitat von: RoBra81 am 12 November 2014, 08:12:30
Kannst du mal die Definition des HTTPMOD (für Pro7 sollte reichen) und der ReadingsGroup posten?

Also das list des TV_Programms sieht so aus:
Internals:
   DEF        http://www.tvmovie.de/tv-programm-jetzt-im-tv.html?tv-stations-count=100&time=now&form_build_id=form-7f6a9332d4b1e7b5bc6af20e39353673&form_id=dikr_tvm_tv_guide_tv_stations_count_form 60
   Interval   60
   NAME       TV_Programme
   NR         200
   STATE      mein_TV_programm: Die große TV total Stock Car Crash Challenge 2014
   TYPE       HTTPMOD
   addr       http://www.tvmovie.de:80
   buf
   displayurl http://www.tvmovie.de/tv-programm-jetzt-im-tv.html?tv-stations-count=100&time=now&form_build_id=form-7f6a9332d4b1e7b5bc6af20e39353673&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   host       www.tvmovie.de
   loglevel   4
   path       /tv-programm-jetzt-im-tv.html?tv-stations-count=100&time=now&form_build_id=form-7f6a9332d4b1e7b5bc6af20e39353673&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   protocol   http
   redirects  0
   timeout    2
   url        http://www.tvmovie.de/tv-programm-jetzt-im-tv.html?tv-stations-count=100&time=now&form_build_id=form-7f6a9332d4b1e7b5bc6af20e39353673&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   Readings:
     2014-11-11 21:19:42   ARD             In aller Freundschaft
     2014-11-11 21:19:42   II              RTL II Bones - Die Knochenjägerin
     2014-11-11 21:19:42   KABEL_1         Die strengsten Eltern der Welt
     2014-11-08 23:00:22   Pro7            Die große TV total Stock Car Crash Challenge 2014
     2014-11-09 12:37:55   RTL             Bauer sucht Frau
     2014-11-11 21:19:42   Sat1            Küss Dich reich
     2014-11-11 21:19:42   Sport1          Fußball
     2014-11-11 21:19:42   VOX             Goodbye Deutschland! Die Auswanderer
     2014-11-11 21:19:42   ZDF             Frontal 21
     2014-11-11 21:19:42   rtl2            Zuhause im Glück - Unser Einzug in ein neues Leben
Attributes:
   readingsName_ARD ARD
   readingsName_KABEL_1 KABEL_1
   readingsName_Pro7 Pro7
   readingsName_RTL II RTL II
   readingsName_Sat1 Sat1
   readingsName_Sport1 Sport1
   readingsName_VOX VOX
   readingsName_ZDF ZDF
   readingsName_rtl2 rtl2
   readingsRegex_ARD <span>ARD <[\w\W]*?alt="(.*?)" title=
   readingsRegex_KABEL_1 <span>KABEL 1 <[\w\W]*?alt="(.*?)" title=
   readingsRegex_Pro7 <span>Pro7<[\w\W]*?alt="(.*?)" title=
   readingsRegex_Pro7_time <span>Pro7<[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_RTL <span>RTL <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_Sat1 <span>SAT.1 <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_Sport1 <span>Sport1 <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_VOX <span>VOX <[\w\W]*?alt="(.*?)" title=
   readingsRegex_ZDF <span>ZDF <[\w\W]*?alt="(.*?)" title=
   readingsRegex_rtl2 <span>RTL II <[\w\W]*?alt="(.*?)" title=
   stateFormat mein_TV_programm: Pro7
   timeout    5


und so das es des TV_Programm_next
Internals:
   DEF        http://www.tvmovie.de/tv-programm-gleich-im-tv.html?tv-stations-count=100&time=soon&form_build_id=form-6c71e36a9e9651420736eccb5287fdec&form_id=dikr_tvm_tv_guide_tv_stations_count_form 60
   Interval   60
   NAME       TV_Programme_next
   NR         201
   STATE      mein_TV_programm: 2 Broke Girls
   TYPE       HTTPMOD
   addr       http://www.tvmovie.de:80
   buf
   displayurl http://www.tvmovie.de/tv-programm-gleich-im-tv.html?tv-stations-count=100&time=soon&form_build_id=form-6c71e36a9e9651420736eccb5287fdec&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   host       www.tvmovie.de
   loglevel   4
   path       /tv-programm-gleich-im-tv.html?tv-stations-count=100&time=soon&form_build_id=form-6c71e36a9e9651420736eccb5287fdec&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   protocol   http
   redirects  0
   timeout    2
   url        http://www.tvmovie.de/tv-programm-gleich-im-tv.html?tv-stations-count=100&time=soon&form_build_id=form-6c71e36a9e9651420736eccb5287fdec&form_id=dikr_tvm_tv_guide_tv_stations_count_form
   Readings:
     2014-11-11 21:19:38   ARD_next        Report München
     2014-11-11 21:19:38   ARD_next_time   21:45
     2014-11-11 21:19:38   KABEL_1_next    K1 Magazin
     2014-11-11 21:19:38   KABEL_1_next_time 22:20
     2014-11-11 21:19:38   Pro7_next       2 Broke Girls
     2014-11-11 21:19:38   Pro7_next_time  21:35
     2014-11-11 21:19:38   RTL_next        CSI - Den Tätern auf der Spur
     2014-11-11 21:19:38   RTL_next_time   22:15
     2014-11-11 21:19:38   Sat1_next       akte 20.14 - Reporter kämpfen für Sie!
     2014-11-11 21:19:38   Sat1_next_time  22:15
     2014-11-11 21:19:38   Sport1_next     Fantalk
     2014-11-11 21:19:38   Sport1_next_time 22:15
     2014-11-11 21:19:38   VOX_next        Die Küchenchefs
     2014-11-11 21:19:38   VOX_next_time   23:15
     2014-11-11 21:19:38   ZDF_next        heute-journal
     2014-11-11 21:19:38   ZDF_next_time   21:45
     2014-11-11 21:19:38   rtl2_next       Extrem schön! - Endlich ein neues Leben
     2014-11-11 21:19:38   rtl2_next_time  22:15
Attributes:
   readingsName_ARD_next ARD_next
   readingsName_ARD_next_time ARD_next_time
   readingsName_KABEL_1_next KABEL_1_next
   readingsName_KABEL_1_next_time KABEL_1_next_time
   readingsName_Pro7_next Pro7_next
   readingsName_Pro7_next_time Pro7_next_time
   readingsName_RTL II_next_time RTL II_next_time
   readingsName_RTL_next RTL_next
   readingsName_RTL_next_time RTL_next_time
   readingsName_Sat1_next Sat1_next
   readingsName_Sat1_next_time Sat1_next_time
   readingsName_Sport1_next Sport1_next
   readingsName_Sport1_next_time Sport1_next_time
   readingsName_VOX_next VOX_next
   readingsName_VOX_next_time VOX_next_time
   readingsName_ZDF_next ZDF_next
   readingsName_ZDF_next_time ZDF_next_time
   readingsName_rtl2_next rtl2_next
   readingsName_rtl2_next_time rtl2_next_time
   readingsRegex_ARD_next <span>ARD <[\w\W]*?alt="(.*?)" title=
   readingsRegex_ARD_next_time <span>ARD <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_KABEL_1_next <span>KABEL 1 <[\w\W]*?alt="(.*?)" title=
   readingsRegex_KABEL_1_next_time <span>KABEL 1 <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_Pro7_next <span>PRO 7 <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_Pro7_next_time <span>PRO 7 <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_RTL II_next_time <span>RTL II <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_RTL_next <span>RTL <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_RTL_next_time <span>RTL <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_Sat1_next <span>SAT.1 <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_Sat1_next_time <span>SAT.1 <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_Sport1_next <span>Sport1 <span[\w\W]*?alt="(.*?)" title=
   readingsRegex_Sport1_next_time <span>Sport1 <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_VOX_next <span>VOX <[\w\W]*?alt="(.*?)" title=
   readingsRegex_VOX_next_time <span>VOX <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_ZDF_next <span>ZDF <[\w\W]*?alt="(.*?)" title=
   readingsRegex_ZDF_next_time <span>ZDF <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   readingsRegex_rtl2_next <span>RTL II <[\w\W]*?alt="(.*?)" title=
   readingsRegex_rtl2_next_time <span>RTL II <[\w\W]*?air-time"><strong>(.*?)<\/strong>
   stateFormat mein_TV_programm: Pro7_next
   timeout    10
   verbose    1


und die readingsGroup
Internals:
   DEF        <Programm>,<Jetzt>,<Dann>,<Uhrzeit>
TV_Programme_next:Sat1@TV_Programme,Sat1_next,Sat1_next_time
TV_Programme_next:Pro7@TV_Programme,Pro7_next,Pro7_next_time
TV_Programme_next:RTL@TV_Programme,RTL_next,RTL_next_time
TV_Programme_next:ARD@TV_Programme,ARD_next,ARD_next_time
TV_Programme_next:ZDF@TV_Programme,ZDF_next,ZDF_next_time
TV_Programme_next:Sport1@TV_Programme,Sport1_next,Sport1_next_time
TV_Programme_next:rtl2@TV_Programme,rtl2_next,rtl2_next_time
TV_Programme_next:KABEL_1@TV_Programme,KABEL_1_next,KABEL_1_next_time
TV_Programme_next:VOX@TV_Programme,VOX_next,VOX_next_time
   NAME       TV_Programm
   NR         202
   NTFY_ORDER 50-TV_Programm
   STATE      Initialized
   TYPE       readingsGroup
   mayBeVisible 1
   Content:
     TV_Programme_next 1
   Content2:
     TV_Programme 1
   DEVICES:
     ARRAY(0x830640)
     ARRAY(0x830490)
     ARRAY(0x830660)
     ARRAY(0x830670)
     ARRAY(0x830680)
     ARRAY(0x830690)
     ARRAY(0x8306a0)
     ARRAY(0x8306b0)
     ARRAY(0x8306c0)
     ARRAY(0x8306d0)
   DEVICES2:
     ARRAY(0x830640)
     ARRAY(0x830490)
     ARRAY(0x830660)
     ARRAY(0x830670)
     ARRAY(0x830680)
     ARRAY(0x830690)
     ARRAY(0x8306a0)
     ARRAY(0x8306b0)
     ARRAY(0x8306c0)
     ARRAY(0x8306d0)
     ARRAY(0x830120)
     ARRAY(0x830140)
     ARRAY(0x830c00)
     ARRAY(0x14a7f78)
     ARRAY(0x14a7fb8)
     ARRAY(0x14a7ff8)
     ARRAY(0x14a8038)
     ARRAY(0x14a8078)
     ARRAY(0x14a80b8)
   Fhem:
     lastDefChange 1
     last_update 1415820766.44481
Attributes:
   commands   {"set Senderwechsel %READING"}
   fp_Reciever 273,788,0,
   group      TV_Programm
   nameIcon   { Pro7 => 'pro7', Sat1 => 'sat1', RTL => 'rtl', Sport1 => 'sport1', ZDF => 'zdf', ARD => 'ard',rtl2 => 'rtl2',KABEL_1 => 'kabel1',VOX => 'vox' }
   nameStyle  style="color:yellow;font-weight:bold"
   noheading  1
   style      style="color:white;font-size:18px"
   verbose    3
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Rince

Zitatdas habe ich (wie weiter oben beschrieben) schon mit meiner Eine-Datei-Lösung umgesetzt  

Echt?
Dann ist mir das entgangen. Entschuldige bitte :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)