NEWS
Test Adapter tvprogram
-
ich bin vom Adapter voll begeistert, wenn du mir jetzt noch sagst, wie ich die Daten (Beginn, Ende, Beschreibung, Bild) des aktuell ausgewählten Programm, in extra Datenpunkte zum weiterverarbeiten bekomme. Bin ich wunschlos glücklich
Eigentlich fehlt nur noch eine zusätzliche Datenquelle, um die fehlenden TV Programme zu integrieren.
-
@mconno sagte in Test Adapter tvprogram:
Ich habe gerade auf die 0.31 upgedatet und bekomme im Control keine Anzeige in der Vis!?
Im Vis-Editor sehe ich die Einträge allerdings.
Das Bild zeigt den Editor...Hier das Bild von der VIS:
man sieht nur den Bereich der Favoriten, rechts ist gar nichts zu sehen...Weiterhin wäre in der Suche ein Eintrag für Formel-1 ganz gut!
bitte adapter (nicht nur die instanz) einmal komplett deinstallieren,
dann wieder installieren.
zur sicherheit auf der console
iobroker upload all
eingeben
bei allen widgets prüfen, ob der datenpunkt mit cmd des jeweiligen tvs am ende richtig ausgewählt wurde.
falls dann immer noch nicht, dann benötige ich die fehler aus der browser console -
@oli sagte in Test Adapter tvprogram:
ich bin vom Adapter voll begeistert, wenn du mir jetzt noch sagst, wie ich die Daten (Beginn, Ende, Beschreibung, Bild) des aktuell ausgewählten Programm, in extra Datenpunkte zum weiterverarbeiten bekomme. Bin ich wunschlos glücklich
Eigentlich fehlt nur noch eine zusätzliche Datenquelle, um die fehlenden TV Programme zu integrieren.
was ist das aktuell ausgewählte Programm?
Über den javascript-Adapter kannst du alles abrufen:
https://github.com/oweitman/iobroker.tvprogram#getserverbroadcastnow
und in datenpunkte schreiben. -
Ich hab mir gerade mal das Such-Widget eingerichtet... Wenn ich das Suchfeld antippe, dann kommt kurz das on-screen-keyboard hoch, verschwindet nach 1-2 sekunden und ich lande auf einem anderen view. Sehr komisch das ganze - ich vermute jedoch das liegt am System, nicht am Adapter. Ich verwende ein Xoro Megapad 2154 mit Android 7.1
Hat irgendwer hier noch so einen Effekt? -
@spaceduck sagte in Test Adapter tvprogram:
Ich hab mir gerade mal das Such-Widget eingerichtet... Wenn ich das Suchfeld antippe, dann kommt kurz das on-screen-keyboard hoch, verschwindet nach 1-2 sekunden und ich lande auf einem anderen view. Sehr komisch das ganze - ich vermute jedoch das liegt am System, nicht am Adapter. Ich verwende ein Xoro Megapad 2154 mit Android 7.1
Hat irgendwer hier noch so einen Effekt?mach mal zur sicherheit auf der konsole
iobroker upload all
evtl. hat sich da etwas verhakt. aber das er automatisch den view wechselt ist nicht normal
-
irgendwie mache ich hier was falsch und stoße als Laie wieder mal an meine Grenzen.
Ich versuche per Script Daten aus deiner Liste für das aktuelle Programm in einen Datenpunkt zu schreiben
let sender = getState("tvprogram.0.tv1.show").val sendTo("tvprogram.0","getServerBroadcastNow",[4],(data)=> setState("javascript.0.TV.Steuerung.Aktuelle Beschreibung",data.events.content.texts.VeryShort.value)); sendTo("tvprogram.0","getServerBroadcastNow",[sender],(data)=>console.log(data));
Wenn ich die Sendernummer durch eine Variable ersetze wird gar nichts angezeigt
20:20:46.626 info javascript.0 (22208) script.js.TV_Programm.Test: []
Wenn ich versuche die Beschreibung in einen Datenpunkt zu schreiben, bekomme ich folgende Warnung
20:20:46.625 warn javascript.0 (22208) TypeError: Cannot read property 'content' of undefined at Object.sendTo [as cb] (script.js.TV_Programm.Test:2:130) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5297:71) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) at process.topLevelDomainCallback (domain.js:126:23)
Was mache ich falsch?
-
@oli sagte in Test Adapter tvprogram:
irgendwie mache ich hier was falsch und stoße als Laie wieder mal an meine Grenzen.
Ich versuche per Script Daten aus deiner Liste für das aktuelle Programm in einen Datenpunkt zu schreiben
let sender = getState("tvprogram.0.tv1.show").val sendTo("tvprogram.0","getServerBroadcastNow",[4],(data)=> setState("javascript.0.TV.Steuerung.Aktuelle Beschreibung",data.events.content.texts.VeryShort.value)); sendTo("tvprogram.0","getServerBroadcastNow",[sender],(data)=>console.log(data));
Wenn ich die Sendernummer durch eine Variable ersetze wird gar nichts angezeigt
20:20:46.626 info javascript.0 (22208) script.js.TV_Programm.Test: []
Wenn ich versuche die Beschreibung in einen Datenpunkt zu schreiben, bekomme ich folgende Warnung
20:20:46.625 warn javascript.0 (22208) TypeError: Cannot read property 'content' of undefined at Object.sendTo [as cb] (script.js.TV_Programm.Test:2:130) at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5297:71) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:234:41) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) at process.topLevelDomainCallback (domain.js:126:23)
Was mache ich falsch?
ok,
man muss ein array von channelids übergeben, soweit schon mal richtig.
es müssen gültige channelids sein. soweit auch ok.
die 4 steht für Radio Bremen
Ansonsten kann man die channelids hier nachsehensendTo("tvprogram.0","getServerData","channels",(data)=>console.log(data));
Die Abfrage der Programmbeschreibung ist dann wie folgt
sendTo("tvprogram.0","getServerBroadcastNow",[4],(data)=> console.log(data[0].events[0].content.texts.VeryShort.value))
Da ich diverse Datenstrukturen immer wieder verwende, ist das Array die Auflistung der verschiedenen Sender und das zweite Array die Auflistung der verschiedenen Events/Sendungen. Bei dieser Funktion sollte da aber immer nur ein event enthalten sein.
je nachdem wieviel channelids ich übergebe, können im ersten array auch mehrere elemente enthalten sein.
Auch sind bei texts.VeryShort.value und texts.Long.value nicht immer Werte enthalten, so das das auch undefined sein kann. das muss man vorher prüfen.
Manchmal gibt es nur VeryShort, manchmal nur Long, manchmal beides, manchmal keins.
Zum prüfen kannst du folgenden Ausdruck verewenden:var content=(event.content.texts.Long.value) ? event.content.texts.Long.value:(event.content.texts.VeryShort.value)?event.content.texts.VeryShort.value:"";
In der Variable event, muss natürlich auch das event enthalten sein.
Wenn du eine Variable verwendest, dann muss diese auch eine echte Zahl sein und nicht ein String der eine Zahl enthält.
Zur Sicherheit am besten so machen:sendTo("tvprogram.0","getServerBroadcastNow",[parseInt(sender)],(data)=>console.log(data));
Man kann auch gern in den code der widgets reinschauen.
Der ist hier zu finden:
https://github.com/oweitman/ioBroker.tvprogram/blob/master/widgets/tvprogram/js/tvprogram.jsNoch ein tip: zum besseren Verständnis von JSON-Datenstrukturen kann man das JSON kopieren und direkt in die Developer-Konsole im Browser kopieren. Man muss nur aufpassen, das man richtig kopiert, weil er falsche JSONS dann auch gleich anmeckert. Chrome zumindest zeigt dann die Datenstruktur dann schön zum klicken an. Wenn man das dann noch einer Variable zuweist, dann kann man dort auch den Propertypfad direkt ausprobieren. Das erspart einem einige Edit/Run/Fail/Repeat Schleifen
-
@oliverio sagte in Test Adapter tvprogram:
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
Es werden die Sendungen die zu dieser Uhrzeit laufen angezeigt.
Ist die aktuelle Uhrzeit nach dieser Zeit, werden die Sendungen des nächsten Tages zu dieser Uhrzeit angezeigt. auch hier erfolgt automatisch die Aktualisierung.
.
Wäre es möglich das anpassbar zu machen das er nach der aktuellen Zeit nicht direkt den nächsten Tag anzeigt?
Ich habe eine Übersicht für 20:15 auf meiner Startseite, alle anderen Zeiten wie z.B. was läuft Jetzt, auf einer extra-Seite.
Gehe ich nun um 20:16 auf die VIS seh ich auf der Startseite logischerweise schon den nächsten Tag und müsste dann erst auf die nächste Seite wechseln um zu sehen was jetzt gerade läuft. - time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
-
@ash2k sagte in Test Adapter tvprogram:
@oliverio sagte in Test Adapter tvprogram:
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
Es werden die Sendungen die zu dieser Uhrzeit laufen angezeigt.
Ist die aktuelle Uhrzeit nach dieser Zeit, werden die Sendungen des nächsten Tages zu dieser Uhrzeit angezeigt. auch hier erfolgt automatisch die Aktualisierung.
.
Wäre es möglich das anpassbar zu machen das er nach der aktuellen Zeit nicht direkt den nächsten Tag anzeigt?
Ich habe eine Übersicht für 20:15 auf meiner Startseite, alle anderen Zeiten wie z.B. was läuft Jetzt, auf einer extra-Seite.
Gehe ich nun um 20:16 auf die VIS seh ich auf der Startseite logischerweise schon den nächsten Tag und müsste dann erst auf die nächste Seite wechseln um zu sehen was jetzt gerade läuft.hm stimmt.
ich würde ungern dafür ein weiteres Einstellfeld hinzufügen.
mir würden 2 Möglichkeiten einfallen:- folgende Notation
20:15/120
Bedeutet Anzeige für 20:15 für 120 Minuten
Wenn diese Angabe fehlt, werden automatisch 120 Minuten angenommen
Eingabe wie bisher, aber ab 00:00 Uhr wechselt es erst.
Nachteil daran ist, wenn man hier bspw 10:00 Uhr einstellt, dann werden sehr lang die alten Sendungen noch angezeigt.ich bin für Variante 1)
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
-
@oliverio sagte in Test Adapter tvprogram:
ich bin für Variante 1)
Ich auch
Geht das jetzt schon so oder musst du es noch anpassen? -
@ash2k sagte in Test Adapter tvprogram:
@oliverio sagte in Test Adapter tvprogram:
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
Es werden die Sendungen die zu dieser Uhrzeit laufen angezeigt.
Ist die aktuelle Uhrzeit nach dieser Zeit, werden die Sendungen des nächsten Tages zu dieser Uhrzeit angezeigt. auch hier erfolgt automatisch die Aktualisierung.
.
Wäre es möglich das anpassbar zu machen das er nach der aktuellen Zeit nicht direkt den nächsten Tag anzeigt?
Ich habe eine Übersicht für 20:15 auf meiner Startseite, alle anderen Zeiten wie z.B. was läuft Jetzt, auf einer extra-Seite.
Gehe ich nun um 20:16 auf die VIS seh ich auf der Startseite logischerweise schon den nächsten Tag und müsste dann erst auf die nächste Seite wechseln um zu sehen was jetzt gerade läuft.Jetzt muss ich nochmal nachfragen. Ich hab selbst schonb vergessen wie ich das umgesetzt habe, sehe es aber gerade im code
Hattest du das getestet?
Eigentlich ist es so hinterlegt, das zur eingegebenen Uhrzeit die Sendungen abgefragt werden,
Eine erneute Überprüfung und Aktualisierung erfolgt allerdings erst dann, wenn die letzte Sendung der Liste abgeschlossen wurde, oder bei reload des widgets. - time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
-
Ich hab leider noch ein Problem:
Ich erstelle mir im VIS-Editor diese Seite:
Links unten ist im Widget keine Zeit eingetragen, im rechten Widget wie auf dem Bild zu sehen 20:15
In der VIS sieht es dann allerdings so aus:
Sprich das 20:15-Widget wird nicht angezeigt
Hier mal der Log aus der Entwickler-Konsole:
Habe auch schon den Adapter komplett gelöscht, nach Neuinstallation iobroker upload all gemacht, am CSS nichts geändert
Falls es dir hilft hier auch mal der Export der gesamten View:
Vielleicht hast du noch eine Idee?
-
@oliverio sagte in Test Adapter tvprogram:
@ash2k sagte in Test Adapter tvprogram:
@oliverio sagte in Test Adapter tvprogram:
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
Es werden die Sendungen die zu dieser Uhrzeit laufen angezeigt.
Ist die aktuelle Uhrzeit nach dieser Zeit, werden die Sendungen des nächsten Tages zu dieser Uhrzeit angezeigt. auch hier erfolgt automatisch die Aktualisierung.
.
Wäre es möglich das anpassbar zu machen das er nach der aktuellen Zeit nicht direkt den nächsten Tag anzeigt?
Ich habe eine Übersicht für 20:15 auf meiner Startseite, alle anderen Zeiten wie z.B. was läuft Jetzt, auf einer extra-Seite.
Gehe ich nun um 20:16 auf die VIS seh ich auf der Startseite logischerweise schon den nächsten Tag und müsste dann erst auf die nächste Seite wechseln um zu sehen was jetzt gerade läuft.Jetzt muss ich nochmal nachfragen. Ich hab selbst schonb vergessen wie ich das umgesetzt habe, sehe es aber gerade im code
Hattest du das getestet?
Eigentlich ist es so hinterlegt, das zur eingegebenen Uhrzeit die Sendungen abgefragt werden,
Eine erneute Überprüfung und Aktualisierung erfolgt allerdings erst dann, wenn die letzte Sendung der Liste abgeschlossen wurde, oder bei reload des widgets.du meinst ohne die /120 dahinter?
Also ich hatte vorhin das Widget in der VIs offen, es war so ca. 20:20 und er zeigte mir die Sendungen von morgen 20:15 an, da kam ich dann erst drauf. Kann das aber gerne morgen nochmal testen!
- time wird mit Uhrzeit im 24h-Format belegt, bspw 20:15:
-
@OliverIO woran liegt es das bei mir die View nur 3 Zeilen lädt und erst alles anzeigt wenn ich den markierten button nutze? Kann man das umstellen?
-
@ash2k sagte in Test Adapter tvprogram:
Ich hab leider noch ein Problem:
Ich erstelle mir im VIS-Editor diese Seite:
Links unten ist im Widget keine Zeit eingetragen, im rechten Widget wie auf dem Bild zu sehen 20:15
In der VIS sieht es dann allerdings so aus:
Sprich das 20:15-Widget wird nicht angezeigt
Hier mal der Log aus der Entwickler-Konsole:
Habe auch schon den Adapter komplett gelöscht, nach Neuinstallation iobroker upload all gemacht, am CSS nichts geändert
Falls es dir hilft hier auch mal der Export der gesamten View:
Vielleicht hast du noch eine Idee?
Fehler gefunden.
Korrektur kommt im nächsten Release.
Das widget war noch nicht in der Lage korrekt mit mehr wie einem widget gleichzeitig umzugehen. -
@stephan-schleich sagte in Test Adapter tvprogram:
@OliverIO woran liegt es das bei mir die View nur 3 Zeilen lädt und erst alles anzeigt wenn ich den markierten button nutze? Kann man das umstellen?
was meinst du mit 3 Zeilen?
ich sehe 4 Sender. Wenn du mehr ausgewählt hast, dann ist das der Fallback, da werden die ersten 4 Sender automatisch ausgewählt, falls es noch keine gespeicherte Senderauswahl
gibt.
Welchen Datenpunkt hast du ausgewählt?
Welche Version hast du?
Wie lautet der Inhalt des Datenpunktes tvprogram.0.tv?.channelfilter
Das Fragezeichen hängt vom Datenpunkt ab, den du ausgewählt hast,
da wir ja mittlerweile die Möglichkeit haben mehrere Fernseher parallel mit unterschiedlichen Konfigurationen zu betreiben. -
Ich habe mal das Log auf Debug gestellt, das ist rausgekommen:
Ich hoffe, du kannst damit etwas anfangen!?
Gruss
Onno -
@oliverio sagte in Test Adapter tvprogram:
@mconno sagte in Test Adapter tvprogram:
Ich habe gerade auf die 0.31 upgedatet und bekomme im Control keine Anzeige in der Vis!?
Im Vis-Editor sehe ich die Einträge allerdings.
Das Bild zeigt den Editor...Hier das Bild von der VIS:
man sieht nur den Bereich der Favoriten, rechts ist gar nichts zu sehen...Weiterhin wäre in der Suche ein Eintrag für Formel-1 ganz gut!
bitte adapter (nicht nur die instanz) einmal komplett deinstallieren,
dann wieder installieren.
zur sicherheit auf der console
iobroker upload all
eingeben
bei allen widgets prüfen, ob der datenpunkt mit cmd des jeweiligen tvs am ende richtig ausgewählt wurde.
falls dann immer noch nicht, dann benötige ich die fehler aus der browser consoleHab ich alles gemacht, keine Änderung! In der vorigen Msg steht ja das Log drin;
jetzt hab ich noch etwas seltsames gefunden:
Schau mal rechts im Editfeld: Geschwindigkeit !? Habe bei @Ash2k auf seinem screenshot gesehen, dass da eine Zeit steht?
Was mich ja am meisten stutzig macht, ist, dass im Editor das "Control"-Feld & Fav-Feld angezeigt wird? Nur eben in der Vis nicht! -
@oliverio hat sich erledigt, man muss mittlerweile einen TV im Adapter anlegen, jetzt geht's (Wäre noch cool wenn man den Namen editieren könnte)
-
@mconno
ich benötige das browser login einem view möglichst nur das widget lassen, welches probleme macht.
dann diesen view im vis runtime aufrufen.
dann f12 im browser drücken und im neu erschienen bereich auf konsole gehen
und nach fehler suchen oder am besten das komplette log kopierenhast du auch 2xcontrol widget?
dann könnte es der fehler sein, der im nächsten release behoben ist.