Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-red basierter Abruf des Fernsehprogramms von rtv.de

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Node-red basierter Abruf des Fernsehprogramms von rtv.de

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 3.7k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • N Offline
    N Offline
    nobody
    schrieb am zuletzt editiert von
    #1

    Hallo,

    der TV-Spielfilm-Adapter läuft richtig gut, aber leider ist der RSS-Feed von TV-Spielfilm mehr als lückenhaft. Deswegen habe ich eine Alternative gesucht, die auch die Sky-Sender sowie viele ausländische Sender enthält. http://www.rtv.de/ bietet eine brauchbare Auswahl und stellt die Daten ebenfalls per rss-Feed bereit. Deswegen habe ich meine Lösung darauf aufgebaut. Die redaktionellen Teile und Bilder sind war etwas schlechter als bei TV-Spielfilm, aber dafür sind fast alle relevanten Sender aus Deutschland, Östereich und der Schweiz und auch Pay-TV enthalten.

    Ich hab das ganze in node-red umgesetzt, weil das aus meiner Sicht erstmal flexibler ist und einfacher angepasst werden kann. Außerdem gehört zum Flow auch noch ein Stück der Anzeigelogik in vis.

    Mein Flow ließt periodisch die folgenden rss-Feeds aus:

    • Aktuelles Programm (alle 5 Minuten)

    • Filmtipps (alle 60 Minuten)

    • Programm 20:15 (alle 4 Stunden)

    • Programm 22:00 (alle 4 Stunden)

    Die Programme können über eine Whitelist gefiltert und sortiert werden. Die Whitelist ist ein json-Objekt, in dem nicht nur die Sender, sondern auch die Kanalnummern auf der Fernbedingung und die Gruppenzuordnung (n:m) festgelegt werden kann.

    632_tv_node-red_flow.png

    Die Anzeige erfolgt in einem einzigen json Table Widget, wobei die Anzeige sowohl swischen den Feeds umschalten als auch nach den definierten Gruppen filtern kann. Der Inhalt des json-States wird dann über node-red dynamisch angepasst. Ansonsten sieht die Tabelle erstmal ziemlich ähnlich aus, wie die vom TV-Spielfilm-Adapter.

    Für die Umschaltung der Sender z.B. über den Harmony-Adapter oder über eine IR-Diode am Raspberry habe ich Client-seitig eine Javascript-Funktion eingebaut, die über XMLHttpRequest eine Rest-API (z.B. ioBroker direkt oder node-red) aufrufen kann.

    632_vis_tv_view.png

    Falls Interesse besteht, kann ich die Lösung hier gerne mal veröffentlichen.

    Markus

    1 Antwort Letzte Antwort
    0
    • R Offline
      R Offline
      rde-master
      Developer
      schrieb am zuletzt editiert von
      #2

      Hallo,

      mich würde sehr der Flow interessieren.

      Es währe super wenn du diesen Posten könntest.

      Grüße

      Daniel

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        nobody
        schrieb am zuletzt editiert von
        #3

        Hallo rde-master,

        ok, dann versuche ich mal die Installation so gut wie möglich zu beschreiben. Leider geht das mit node-red nicht so komfortabel wie bei den Adaptern.

        Anlegen des Abbildungsverzeichnisses

        In der Datei sender.zip sind die Icons der Sender, ich bisher aktiviert habe, und noch ein paar Icons für die Steuerung der edit-Seite. Diese Dateien am besten in ein neues Unterverzeichnis unterhalb des vis-Projektordners kopieren (z.B. in /opt/iobroker/iobroker-data/files/vis.0/main/img/sender)

        Die Logos stammen von https://github.com/3PO/Senderlogos. Falls Sender aufgenommen werden sollen, für die noch kein Bild da ist, kann dies einfach in den Order kopiert werden. Der Dateiname muss aber ggf. angepasst werden, weil dieser dem Sendernamen im RSS in Kleinbuchstaben entsprechen muss. Außerdem werden alle anderen Zeichen als [a..z0..9] entfernt.

        Anlegen der States in ioBroker

        Der Flow legt die States nicht selbst an. Diese müssen über die Admin-Seite importiert werden. Dafür ist die Datei tv-Flow-States.json.txt da.

        Diesen kann man über folgende Funktion importieren:
        632_states_einf_gen.png
        Alle States befinden sich hoffentlich anschließend unter node-red.0.tv

        Importieren des Node-red-Flows

        Dafür am besten auf einer neuen Seite den Flow aus Datei node-red tv flow.json.txt importieren und Deploy drücken.

        Im Node-Red-Flow selbst sollten eigentlich keine Einstellungen erforderlich sein. Alle Parameter befinden sich in ioBroker-States.

        Importieren des CSS für die Tabellenanzeige in das VIS-Projekt

        Die Datei TV View Style.css.txt enthält die Syle-Informationen für die Tabellen. Den Inhalt am besten in den Projektteil reinkopieren.

        632_vis_css_einstellen.png

        Die Style-Angaben können natürlich im Anschluss an die eigenen Vorstellungen angepasst werden.

        Importieren der Widgets für die Edit-Seite

        Ich habe die Lösung in dieser Woche üm einen View erweitert, über den alle Konfigurationen vorgenommen werden können. Diese Widgets aus Datei tv edit.json.txt auf einen neuen View importieren.

        Die Seite sollte dann in etwa so aussehen:

        632_tv_edit.png

        Die Channel-Whitelist ist jedoch zurzeit noch leer. Auch dürften die Bilder noch nicht korrekt angezeigt werden.

        Wichtig ist, zunächst einmal die Grundeinstellungen ganz unten vorzunehmen:

        Unter Image Verzeichnis url ist der Pfad auf das Image-Verzeichnis einzutragen, in dem die Bilder rein kopiert wurden. Damit dies später vielleicht auch noch mit der Android-App funktioniert, sollte dies am besten mit einem lokalen absoluten Pfad erfolgen. Also z.B.````
        /vis.0/main/img/sender

        Am Ende darf kein "/" stehen.
        
        Unter __node red url__ ist die url des Node-Red-Servers anzugeben. Dieser muss unter dieser URLvom Client aus für die Funktionen der Edit-Seite erreichbar sein. Auch hier darf am Ende kein "/" stehen.
        
        Anschießend die Seite im Browser neu laden und auf den Schalter __Refesh__ drücken. Es werden dann schonmal alle Sender abgerufen und in der unteren Tabelle angezeigt.
        
        Jetzt kann man entweder die Whitelist komplett von Hand befüllen, indem man einen Sender aus der unteren Liste auswählt, rechts daneben die Eigenschaften ausfüllt und dann auf speichern klickt.
        
        Oder man kann meine Whitelist über die Admin-Seite von ioBroker in den State kopieren und diese dann nach den eigenen Wünschen abändern.
        
        Nach den einkopieren ist aber noch eine Änderung in einem der beiden Felder erforderlich, weil erst dadurch die Links in der einkopierten Whitelist angepasst werden.
        
        In der oberern Tabelle sieht man alle Einträge in der Whitelist. Nur Sender, die sich in der Whitelist befinden, werden auch angezeigt.
        
        Über die Icons in der letzten Spalte können Einträge verschoben, in das Edit-Feld kopiert oder gelöscht werden.
        
        Für jeden Sender kann die Kanalnummer auf der Fernbedienung eingegeben sowie mehrere Kategorien ausgewählt werden. Diese dienen nacher zur Einschränkung der angezeigten Sender.
        
        Weitere Einstellmöglichkeiten:
        
        Über die Genre-Blacklist können Genre festgelegt werden, die nicht angezeigt werden sollen. Die Liste ist durch "," getrennt. Ein Eintrag muss genau dem Genre-Text vor dem ersten "," entsprechen, damit eine Sendung ausgeblendet wird.
        
        Über Highlight-Keywords können Sendungen als Tip markiert werden, wenn im Titel das angegebene Schlüsselwort enthalten ist.
        
        Über die Titel Blacklist können Schlüsselworter eingegeben werden, die zum Ausblenden einer Sendung führt, wenn eines der Schlüsselwörter im Titel enthalten ist.
        
        Nach Anpassung der Daten kann man auf den Schalter __Refresh__ drücken, um alle RSS-Feeds neu abzurufen und die geänderten Attribute anzuwenden. Ansonsten erfolgt der Abruf der RSS-Feeds erst wieder mit der nächsten Regel-Aktualisierung.
        
        ****Importieren des VIS Anzeige-Views****
        
        Zum Schluss ist natürlich auch noch der View für die Anzeige zu importieren. Dieser sollte in dasselbe Projekt aber auf einen anderen View wie der Edit-Dialog importiert werden.
        
        Die Widgets befinden sich in der Datei __TV View Widgets.json.txt__.
        
        Nach dem Import sollte die Anzeige dann in etwa so aussehen:
         ![632_tv-view.png](/assets/uploads/files/632_tv-view.png) 
        
        So, ich hoffe, dass war jetzt nicht zu kompliziert und klappt auch so wie beschrieben. Ich hab leider kein freies Testsystem und kann die Installationsanleitung nicht vorher ausprobieren.
        
        Es fehlt noch eine kleine Ergänzung, die die Konfigurationsparameter in eine json-Datei sichert und nach einem Neustart wieder herstellt. Das mache ich am WE noch.
        
        mfg
        
        Markus
        1 Antwort Letzte Antwort
        0
        • malorossM Offline
          malorossM Offline
          maloross
          schrieb am zuletzt editiert von
          #4

          Erst einmal vielen Dank für deine Mühe, die gute Anleitung sowie die Dateien.

          Ich bin noch totale Anfängerin, habe aber deine Anleitung Step by Step befolgt und soweit ich es überschauen kann, ist auch alles soweit korrekt angelegt.

          Allerdings habe ich im View, wo die grundlegenden Einstellungen vorgenommen werden, keinerlei "nicht zugewiesene" TV-Programme. Da ich keinen Plan habe, wo ich nach einem Fehler suchen könnte, bitte ich hier mal um Unterstützung.
          483_tvprog.png

          Auch Frauen können sich für Technik begeistern! ;)

          Equipment:
          diverse HM-, HMIP-, Aeotec- Tradfri- Sonos- und Fibaro-Geräte, Master-/Slavesystem auf 2 Raspi4, NAS

          1 Antwort Letzte Antwort
          0
          • N Offline
            N Offline
            nobody
            schrieb am zuletzt editiert von
            #5

            Hallo marloross,

            die Listen verwenden Variablen unter node-red.0, die vorhanden sein müssen und die von den node-red Flows ab Abruf gefüllt werden.

            Laufen bei dir die Flows ohne Fehler durch?

            Gesendet von meinem GT-N8000 mit Tapatalk

            1 Antwort Letzte Antwort
            0
            • malorossM Offline
              malorossM Offline
              maloross
              schrieb am zuletzt editiert von
              #6

              danke für die schnelle Antwort. Ein Teil der Variablen scheint ok, andere sind leer. Aber wie gesagt, ich bin Anfängerin und weiß noch nicht, wie und wo ich Fehler eingrenzen kann.
              483_objekte.png

              Nachtrag: habe jetzt Debug-Informationen eingeschaltet bekommen, darin steht "msg : string [23] Unexpected end of input". Klicke ich das an, wird im Flow "Konvertiere String nach JSON" hervorgehoben.

              Noch ein Nachtrag: Auch im Log des ioBroker wird nach jedem Refresh des Browsers der o.g. Fehler angezeigt

              Nachtrag: Wenn ich das richtig verstehe, werden sowohl das Verzeichnis der Logos noch die Adresse zum Node-Red akzeptiert (im ioBroker erscheint im Dialog "bestätigt: false".

              Auch Frauen können sich für Technik begeistern! ;)

              Equipment:
              diverse HM-, HMIP-, Aeotec- Tradfri- Sonos- und Fibaro-Geräte, Master-/Slavesystem auf 2 Raspi4, NAS

              1 Antwort Letzte Antwort
              0
              • malorossM Offline
                malorossM Offline
                maloross
                schrieb am zuletzt editiert von
                #7

                Heute folgendes durchgeführt:

                • Node-Red gelöscht und neu aufgesetzt (über Befehlskonsole Raspi)
                Noch einmal alle Arbeitsschritte durchgeführt 
                

                Ergebnis: Zumindest sind jetzt unter "nicht zugewiesene" Sender zu sehen, aber diese lassen sich nicht in die Whiteliste kopieren oder anders bearbeiten.

                ioBroker-Log zeigt solche Fehlermeldungen:
                ` > [error] [json:Konvertiere String nach JSON] Unexpected end of input

                [error] [json:f61158b.60c92a8] Unexpected end of input

                [error] [json:f61158b.60c92a8] Unexpected token Z `

                Auch Frauen können sich für Technik begeistern! ;)

                Equipment:
                diverse HM-, HMIP-, Aeotec- Tradfri- Sonos- und Fibaro-Geräte, Master-/Slavesystem auf 2 Raspi4, NAS

                1 Antwort Letzte Antwort
                0
                • N Offline
                  N Offline
                  nobody
                  schrieb am zuletzt editiert von
                  #8

                  Das Feld mit den aktuell konfigurierten Sendern scheint leer zu sein. Deswegen klappt wahrscheinlich das Einlesen der Daten nicht.

                  Gehe mal mit iobroker.admin auf den Reiter Objekte. Dann darunter den folgenden Wert aufklappen:

                  node-red.0.tv.channel

                  Klicke mal hinten auf die Spalte Wert und kopiere den folgenden Text komplett da rein:

                  ! [{"name":"Das Erste","channelID":"1","groups":["Hauptsender","Öffentlich"],"action":"  []("javascript:changeWhitelist('1','Das)   []("javascript:changeWhitelist('2','Das)   []("javascript:changeWhitelist('3','Das)   []("javascript:changeWhitelist('4','Das)"},{"name":"ZDF","channelID":"2","groups":["Hauptsender","Öffentlich"],"action":"           "},{"name":"RTL","channelID":"4","groups":["Hauptsender","Privat"],"action":"           "},{"name":"RTL II","channelID":"6","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','RTL)   []("javascript:changeWhitelist('2','RTL)   []("javascript:changeWhitelist('3','RTL)   []("javascript:changeWhitelist('4','RTL)"},{"name":"Sat.1","channelID":"5","groups":["Hauptsender","Privat"],"action":"           "},{"name":"ProSieben","channelID":"7","groups":["Hauptsender","Privat"],"action":"           "},{"name":"kabel eins","channelID":"8","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','kabel)   []("javascript:changeWhitelist('2','kabel)   []("javascript:changeWhitelist('3','kabel)   []("javascript:changeWhitelist('4','kabel)"},{"name":"Tele 5","channelID":"11","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','Tele)   []("javascript:changeWhitelist('2','Tele)   []("javascript:changeWhitelist('3','Tele)   []("javascript:changeWhitelist('4','Tele)"},{"name":"VOX","channelID":"9","groups":["Hauptsender","Privat"],"action":"           "},{"name":"RTL NITRO","channelID":"14","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','RTL)   []("javascript:changeWhitelist('2','RTL)   []("javascript:changeWhitelist('3','RTL)   []("javascript:changeWhitelist('4','RTL)"},{"name":"RTL Plus","channelID":"1","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','RTL)   []("javascript:changeWhitelist('2','RTL)   []("javascript:changeWhitelist('3','RTL)   []("javascript:changeWhitelist('4','RTL)"},{"name":"Super RTL","channelID":"10","groups":["Hauptsender","Privat","Kinder"],"action":"  []("javascript:changeWhitelist('1','Super)   []("javascript:changeWhitelist('2','Super)   []("javascript:changeWhitelist('3','Super)   []("javascript:changeWhitelist('4','Super)"},{"name":"sixx","channelID":"12","groups":["Hauptsender","Privat"],"action":"           "},{"name":"TLC","channelID":"18","groups":["Hauptsender","Privat"],"action":"           "},{"name":"Pro7 MAXX","channelID":"13","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','Pro7)   []("javascript:changeWhitelist('2','Pro7)   []("javascript:changeWhitelist('3','Pro7)   []("javascript:changeWhitelist('4','Pro7)"},{"name":"Disney Channel","channelID":"1","groups":["Hauptsender","Privat","Kinder"],"action":"  []("javascript:changeWhitelist('1','Disney)   []("javascript:changeWhitelist('2','Disney)   []("javascript:changeWhitelist('3','Disney)   []("javascript:changeWhitelist('4','Disney)"},{"name":"SAT.1 Gold","channelID":"19","groups":["Hauptsender","Privat"],"action":"  []("javascript:changeWhitelist('1','SAT.1)   []("javascript:changeWhitelist('2','SAT.1)   []("javascript:changeWhitelist('3','SAT.1)   []("javascript:changeWhitelist('4','SAT.1)"}]

                  Ich hab da jetzt dein Image-Verzeichnis aus dem Screenshot rein kopiert.

                  1 Antwort Letzte Antwort
                  0
                  • malorossM Offline
                    malorossM Offline
                    maloross
                    schrieb am zuletzt editiert von
                    #9

                    Danke für die Rückmeldung. Der Text ist ja schon drin, aber ich kann nichts in die Whitelist verschieben.

                    Kontextmenü im ioBroker meldet:

                    Wert: [Adresse des Node-Adapters; Verzeichnis Senderlogos]

                    Bestätigt: false

                    Zeitstempel: […..]

                    letzte Änderung: […..]

                    Quelle: system.adapter.web.0

                    Quality: ok

                    Nachtrag: Könnte es am simply web adapter liegen? Eigentlich sollte doch auch der entsprechende Ordner im Bereich Objekte zu sehen sein oder?

                    Auch Frauen können sich für Technik begeistern! ;)

                    Equipment:
                    diverse HM-, HMIP-, Aeotec- Tradfri- Sonos- und Fibaro-Geräte, Master-/Slavesystem auf 2 Raspi4, NAS

                    1 Antwort Letzte Antwort
                    0
                    • N Offline
                      N Offline
                      nobody
                      schrieb am zuletzt editiert von
                      #10

                      Entschuldige die langen Antwortzeiten aber ich bin zurzeit beruflich ziemlich unter Wasser…

                      Kommen irgendwelche Fehlermeldungen in node-red?

                      Die Version oben ist etwas veraltet. Wenn ich mich richtig erinnere, kommuniziert diese noch direkt mit node-red und geht nicht über den Web-Adapter.

                      Dafür muss unbedingt die url von Nodered richtig eingetragen und anschließend der Schalter Reese gedrückt werden.

                      Ich hab das bei mir alles auf Kommunikation über den js-controller umgestellt, komme aber zurzeit nicht dazu, dies hier rein zu stellen.

                      Da zurzeit auch an einem iobroker Adapter für iobroker gebastelt wird glaube ich auch nicht, dass daran noch viele interessiert sind.

                      Gesendet von meinem GT-N8000 mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      455

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe