NEWS
Tvspielfilm.adapter TV Programm für VIS
-
Hallo zusammen,
ich hatte ja bereits vor einiger Zeit in http://forum.iobroker.net/viewtopic.php?f=21&t=880&hilit=tvspielfilm#p6626 ein Skript Skript zum Abfragen der RSS-Feeds von tvspielfilm.de gepostet.
Heute kommt nun der Adapter, der das Skript ersetzt. Er liefert 5 Objekte (Filmhighlights, heute 20:15Uhr, heute 22:00Uhr, Jetzt und Tipps) im JSON Format, die man in VIS im JSON Table Widget verwenden kann. Ich danke Bluefox für die Unterstützung!
CSS-Vorlgen und ein Beispiel Widget zum Importieren liegen auf der Github in der Readme-Datei.
In den Einstellungen kann man Sender festlegen, die man nicht in der Aufstellung haben will (weil man sie nicht empfängt oder weil sie einem nicht gefallen, …). Die Schreibweise muss genauso wie im Feed sein. Also erst anzeigen lassen, dann in die Blacklist eintragen (Komma separiert).
Der Adapter startet alle 5min. Das muss ich ggf. noch anpassen, da alle 5min pro User damit 25 Aufrufe gestartet werden. Eigentlich braucht es das ja nur für "jetzt", die anderen Feeds ändern sich nciht so oft. Mal sehn, wie ich das mache. Hinweise sind willkommen 8-)
Ebenso überlege ich, die Daten auch in einem anderen Fortmat (HTML-Tabelle) in entsprechende Objekte zu speichern, damit man sie auch ohne das VIS-json-table-Widget nutzen kann. Eine Funktion, die in Tipps und Filme die bereits abgelaufenen Filme ausschließt ist auch geplant. Ebenso eine Funktion, die eine Variable auf true setzt, sobald ein vorher in Settings hinterlegter Filmtitel auftaucht. :lol: Aber das dauert noch. Jetzt muss ich erstmal das Wetter ausnutzen!
Der Adapter kann vorerst von Github geladen werden.
https://github.com/Pix---/ioBroker.tvspielfilm
Viel Spaß!
Gruß
Pix
-
Super !!
installation hat sauber funktioniert
Ist es richtig, das es in der Kategorie "Zeitplanung" erscheint?
Wir sicher noch angepasst wenn es auf npm kommt.
Schönen Sonntag noch
Gruß
Jürgen
-
Jetzt baue ich gerade meinen ioBroker neu auf - und schon kann ich umbauen
Wow, da wird sich meine Holde freuen und ich muss noch einen View TV-Programm einbauen und für die Startseite etwas übersichtlicheres ausprobieren.
DANKE
Rainer
-
Ist es richtig, das es in der Kategorie "Zeitplanung" erscheint? ` Ja, die Kategorie lässt sich noch ändern. Das überlasse ich Bluefox. Die bisherige Funktion ist ja nur für VIS, aber das ändert sich, wenn die Benachrichtigung für Filme drin ist. Wenn Filmtitel oder Beschreibung "James Bond" oder "007" enthält, dann Variable Benachrichtigung.boolean auf true und Filminfo in Variable Benachrichtigung.Info. 8-) 8-)
-
Jetzt baue ich gerade meinen ioBroker neu auf - und schon kann ich umbauen
filename="Startseite.jpg" index="0">~~Wow, da wird sich meine Holde freuen und ich muss noch einen View TV-Programm einbauen und für die Startseite etwas übersichtlicheres ausprobieren.
DANKE
Rainer `
Freut mich, Rainer!Probier mal die CSS-Anweisungen in VIS zu ändern (nur dieser Teil):
.tclass-tr:nth-child(even) { color: yellow; background-color: darkred; background-color: rgba(150,150,150,0.2); background-color: rgba(0,150,150,0.8); } ````Die letzte Zeile ist zum Probieren. Vorletzte ist Grundeinstellung. Alles, was später kommt, überschreibt Voriges.
-
Habe mal Probiert - kommt Meldung (siehe rechts):
weitere Hinweise:
beim Anfügen einer Scrolleiste passt die Headline nicht mehr - Header1 ist sowieso nicht zu sehen.
Sortierreihenfolge ist wohl nicht möglich, da erster Eintrag ja das Bild ist.
Gruß
Rainer
-
Habe mal Probiert - kommt Meldung (siehe rechts):
filename="tv_Prog01.jpg" index="0">~~ `
Du kannst auch andere Farben einsetzen. RGBA lässt auch Opacity zu (gefällt mir besser). Kannst auch RGB nehmen.
@Homoran:beim Anfügen einer Scrolleiste passt die Headline nicht mehr - Header1 ist sowieso nicht zu sehen. `
Habe die Scrollleiste nie benutzt und jetzt zum ersten mal entdeckt. Ist aber für mein Wandtablet eh nicht so gut, ich scrolle lieber die View nach unten. Du kannst evtl mit Width die Breite anpassen. oder die Header mit "Kein Header" weglassen und mit einem anderen Text-Widget eine Überschrift bauen.
@Homoran:Sortierreihenfolge ist wohl nicht möglich, da erster Eintrag ja das Bild ist. `
Richtig. Keine eigene Sortierung, die wird vom Feed vorgegeben (chronologisch).Gruß
Pix
-
Hallo pix,
@pix:Du kannst auch andere Farben einsetzen. RGBA lässt auch Opacity zu (gefällt mir besser). `
Habe ich inzwischen gemerkt dass du die Farbe durch overlay mit Opacity erzeugst. Ich hatte erst die Back-Background Farbe von Dark-red (wo um alles in der Welt ist hier etwas dunkelrot ???) geändert und mich gewundert, dass da gar nicht so viel passierte.@pix:Du kannst evtl mit Width die Breite anpassen. `
Das klappte nicht so, wie es IMHO hätte sein müssen.@pix:oder die Header mit "Kein Header" weglassen `
es ist aber nur ein Header da - wo ist "Vorschau"@pix:mit einem anderen Text-Widget eine Überschrift bauen. `
Habe ich dann gemacht.@pix:die wird vom Feed vorgegeben (chronologisch). `
hab ich mir gedacht - ist aber bei "Now playin" schade, dass man die gerade erst gestarteten dann oben sieht und nicht die, die schon länger laufen.- Oder soll man die gar nicht mehr anschalten, weil man hja eh zuviel verpasst hat :mrgreen:
EDIT: mein vorläufiges final
Gruß
Rainer
-
Ich werde den Channel mit den fünf States von rss zu json umbenennen. Das hat Sinn, wenn ich später noch weitere Formate anbiete. Ehrlich gesagt, war der Name "rss" auch nur ein Schnellschuss, weil ich eben einen Namen brauchte. Also bitte nach einem Update die IDs in VIS ändern. Danke!
Gruß
Pix
PS: Wem das im Moment zuviele Logausgaben sind, kann das Loglevel für diesen Adapter in der Expertenansicht im Reiter Instanzen auf "warn" stellen.
-
@pix:fünf States `
Wieso fünf :shock: , ich habe nur mit 4 gearbeitetMuss also nochmal drüber um auch die Filme ainzubinden.
Wunsch: in der Blaclist mit Platzhaltern arbeiten, dann kann ich da auch alle Sky Kanäle auf einmal abschalten. oder alle PayTV
Gruß
Rainer
-
hab letzte Nacht diesen Adapter installiert. Vielen Dank an pix - läuft perfekt. Wenn ich noch einen kleinen Wunsch äussern darf: nebst der Blacklist noch eine Whitelist. Es erscheint mir einfacher, diejenigen Sender herauszusuchen, die ich sehen will - aber das ist wohl individuell.
Gruss
Starfish
-
Wieso fünf :shock: , ich habe nur mit 4 gearbeitet `
Du hast natürlich recht, es sind VIER (4) :lol:hab mich verzählt :oops:
EDIT! Hab mich doch nicht verzählt: jetzt, tipps, heute2015, heute 2200 und spielfilmhighlights (filme). :lol:
Wunsch: in der Blaclist mit Platzhaltern arbeiten, dann kann ich da auch alle Sky Kanäle auf einmal abschalten. oder alle PayTV `
Ich arbeite daran. Das nervt mich auch. Alle PayTV wird schwierig, denn ich kann nur den Namen als Entscheidungskriterium verwenden.Wenn ich noch einen kleinen Wunsch äussern darf: nebst der Blacklist noch eine Whitelist. Es erscheint mir einfacher, diejenigen Sender herauszusuchen, die ich sehen will - aber das ist wohl individuell. `
Ich weiß, was du meinst. Ich könnte das evtl. sehr leicht einbauen ohne das Skript großartig zu ändern. Kann aber dauern.Gruß
Pix
-
@pix:Du hast natürlich recht, es sind VIER (4) :lol:
hab mich verzählt :oops: `
Nein:
- Tagestipps
2.) läuft gerade
3.) Abend (20:15)
4.) Spät (22:00)
5.) Spielfilme
Und die Filme hatte ich nicht gesehen.
Gruß
Rainer
-
Habs auch gerade geändert.
-
nebst der Blacklist noch eine Whitelist. Es erscheint mir einfacher, diejenigen Sender herauszusuchen, die ich sehen will ` Erledigt. Update auf Github.
Wunsch: in der Blaclist mit Platzhaltern arbeiten, dann kann ich da auch alle Sky Kanäle auf einmal abschalten. `
Da hakt es noch.Bisher nutze ich indexOf, um zu prüfen, ob der Sender, der die Sendung ausstrahlt (station) ind der liste steht. Wenn -1 zurückkommt, steht der Sender nicht drin. Also:
display = (adapter.config.blacklist.indexOf(station,0) == -1) ? true : false; // station not in blacklist means display = true
eigentlich würde ich aber lieber den Befehl search verwenden, denn der kann auch RegExp. Damit kann ich auch Groß/Kleinschreibung umgehen und nur einen Teilstring suchen lassen.
Beispiel:
Alle Sender, die den String "Sky" im Namen haben sollen nicht ausgegeben werden. Es soll also nicht -1, sondern die Position im Array ausgegeben werden, wenn "Sky" vorkommt. Damit würde die Variable display = false
display = (adapter.config.blacklist.search(station) == -1) ? true : false; ````ginge, nutzt aber keine RegExp.
display = (adapter.config.blacklist.search(/station/i) == -1) ? true : false;
Frage: Wie kriege ich den Inhalt von "station" (also RTL, Sky, …) in die RegExp-Abfrage ? Gruß Pix
-
Hallo Pix,
super Adapter danke für die aufgebrachte Arbeit!
Leider hab ich seit der heutigen Version 0.2.0 einen Parser Fehler.
Das steht im Log
TypeError: 2016-05-09 19:05:02 error at Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:6:61) TypeError: 2016-05-09 19:05:02 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:273:29) TypeError: 2016-05-09 19:05:02 error at Object.write (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:1293:29) TypeError: 2016-05-09 19:05:02 error at closeTag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5) TypeError: 2016-05-09 19:05:02 error at emitNode (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3) TypeError: 2016-05-09 19:05:02 error at emit (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) TypeError: 2016-05-09 19:05:02 error at Object.saxParser.onclosetag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:225:24) TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:95:17) TypeError: 2016-05-09 19:05:02 error at Parser. (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:255:20) TypeError: 2016-05-09 19:05:02 error at /opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:125:47 TypeError: 2016-05-09 19:05:02 error at check_station (/opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:69:33) TypeError: 2016-05-09 19:05:02 error Cannot read property 'length' of undefined uncaught 2016-05-09 19:05:02 error exception: Cannot read property 'length' of undefined TypeError: 2016-05-09 19:05:02 error at Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:6:61) TypeError: 2016-05-09 19:05:02 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:273:29) TypeError: 2016-05-09 19:05:02 error at Object.write (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:1293:29) TypeError: 2016-05-09 19:05:02 error at closeTag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5) TypeError: 2016-05-09 19:05:02 error at emitNode (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3) TypeError: 2016-05-09 19:05:02 error at emit (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) TypeError: 2016-05-09 19:05:02 error at Object.saxParser.onclosetag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:225:24) TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:95:17) TypeError: 2016-05-09 19:05:02 error at Parser. (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:255:20) TypeError: 2016-05-09 19:05:02 error at /opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:125:47 TypeError: 2016-05-09 19:05:02 error at check_station (/opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:69:33) TypeError: 2016-05-09 19:05:02 error Cannot read property 'length' of undefined uncaught 2016-05-09 19:05:02 error exception: Cannot read property 'length' of undefined TypeError: 2016-05-09 19:05:02 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:273:29) TypeError: 2016-05-09 19:05:02 error at Object.write (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:1293:29) TypeError: 2016-05-09 19:05:02 error at closeTag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5) TypeError: 2016-05-09 19:05:02 error at emitNode (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3) TypeError: 2016-05-09 19:05:02 error at emit (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) TypeError: 2016-05-09 19:05:02 error at Object.saxParser.onclosetag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:225:24) TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:95:17) TypeError: 2016-05-09 19:05:02 error at Parser. (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:255:20) TypeError: 2016-05-09 19:05:02 error at /opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:125:47 TypeError: 2016-05-09 19:05:02 error at check_station (/opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:69:33) TypeError: 2016-05-09 19:05:02 error Cannot read property 'length' of undefined uncaught 2016-05-09 19:05:02 error exception: Cannot read property 'length' of undefined TypeError: 2016-05-09 19:05:02 error at Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:6:61) TypeError: 2016-05-09 19:05:02 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:273:29) TypeError: 2016-05-09 19:05:02 error at Object.write (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:1293:29) TypeError: 2016-05-09 19:05:02 error at closeTag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5) TypeError: 2016-05-09 19:05:02 error at emitNode (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3) TypeError: 2016-05-09 19:05:02 error at emit (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) TypeError: 2016-05-09 19:05:02 error at Object.saxParser.onclosetag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:225:24) TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:95:17) TypeError: 2016-05-09 19:05:02 error at Parser. (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:255:20) TypeError: 2016-05-09 19:05:02 error at /opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:125:47 TypeError: 2016-05-09 19:05:02 error at check_station (/opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:69:33) TypeError: 2016-05-09 19:05:02 error Cannot read property 'length' of undefined uncaught 2016-05-09 19:05:02 error exception: Cannot read property 'length' of undefined TypeError: 2016-05-09 19:05:02 error at Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:6:61) TypeError: 2016-05-09 19:05:02 error at Parser.exports.Parser.Parser.parseString (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:273:29) TypeError: 2016-05-09 19:05:02 error at Object.write (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:1293:29) TypeError: 2016-05-09 19:05:02 error at closeTag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:861:5) TypeError: 2016-05-09 19:05:02 error at emitNode (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:620:3) TypeError: 2016-05-09 19:05:02 error at emit (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/node_modules/sax/lib/sax.js:615:33) TypeError: 2016-05-09 19:05:02 error at Object.saxParser.onclosetag (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:225:24) TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:95:17) TypeError: 2016-05-09 19:05:02 error at Parser. (/opt/iobroker/node_modules/iobroker.tvspielfilm/node_modules/xml2js/lib/xml2js.js:255:20) TypeError: 2016-05-09 19:05:02 error at /opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:125:47 TypeError: 2016-05-09 19:05:02 error at check_station (/opt/iobroker/node_modules/iobroker.tvspielfilm/main.js:69:33) TypeError: 2016-05-09 19:05:02 error Cannot read property 'length' of undefined uncaught 2016-05-09 19:05:02 error exception: Cannot read property 'length' of undefined
Danke für die Hilfe!
mfg
Arminhh
-
Habe todesmutig upgedated;
Habe jetzt dieselben Fehlermeldungen, außer, dass ich bei den folgenden Zeilen andere Stellen angemeckert bekomme:
TypeError: 2016-05-09 19:05:02 error at Parser.emit (events.js:169:7)
und at emitOne (events.js:77:13)
Mussten erst einige Objekte gelöscht werden?
(Die Datenpunktänderung betrifft ja nur .vis, oder?
Gruß
Rainer
-
Danke für die Hinweise, Arminhh und Rainer,
leider kann ich den Fehler nicht reproduzieren. Sowohl auf dem Test- als auch auf dem Produktivsystem läuft der Adapter sauber durch.
Ich hatte ja in 0.1.1 den Channel von rss zu json umbenannt (also bitte in VIS anpassen). Dann habe ich zu 0.2.0 den Code etwas mehr in Englisch gehalten und die Whitelist eingebaut.
Könnt ihr bitte mal zuerst die Instanzen und dann den ganzen Adapter löschen und neu von Github installieren?
Tritt der Fehler auch auf, wenn du was in die Whitelist schreibst? (zB RTL)
Der Fehler wiederholt sich 5x, da für jedes Objekt jeweils einmal der rss-Feed geparst wird.
Gruß
Pix
-
@pix:Könnt ihr bitte mal zuerst die Instanzen und dann den ganzen Adapter löschen und neu von Github installieren? `
Mach ich sofort, wenn der Akku noch hält@pix:Tritt der Fehler auch auf, wenn du was in die Whitelist schreibst? (zB RTL) `
die ist im Moment noch nicht drin. Konfig ist noch die altebis gleich
Rainer
-
jetzt ist auch die neue Struktur da!
keine Fehlermeldung bisher
ich muss morgen dann die Pfade in vis ändern
Gute Nacht
Rainer