Stream-Link aus Web-Interface eines Enigma2 Receivers

…musste erst einmal verstehen, was Du da gemacht hast um diesen Fehler auszulösen!:smiley:

Aber Du hast recht, auch wenn es von mir so noch nie benutzt wurde war die Variable Powerstate Enable für die Nutzung aus dem Webfront. Ich habe das jetzt bei den RequestActions nachgeführt!

Aber so ist das hier und da: Nutzer führen Aktion aus, die ich so nicht bedacht habe - deswegen ist es gut und wichtig es mal intensiv testen zu lassen!:slight_smile:

Joachim

hab mir das mal weiter angesehen dein Modul blockiert bei mir dauerhaft 7 Threads DataUpdate, EPGUpdate, Screenshotupdate. Wenn ich das länger laufen lasse macht das mir auch locker die 30 Threads zu keine Ahnung ob man da was optimieren kann. Das die Threads alle rot sind halte ich zumindest nicht für normal.

Für was machst Du eigentlich so häufig einen EPG Update? Ich habe noch nicht angeschaut was dein Modul da macht aber ein EPG Update reicht doch einmal täglich da musst Du doch die Box nicht ständig mit zuknallen, oder warum schickst Du da ständig einen Request?

Hallo Fonzo,

vielen Dank für Deine Rückmeldung!

Beim ersten Punkt kann ich glaube ich noch etwas lernen: Wo sieht man das mit den belegten Threads?

Zum anderen: Die Änderungen die über die FB hervorgerufen kann ich ja nur durch regelmäßiges pollen ermitteln. Je nach gewählter Darstellung der EPG-Daten ändert sich das zum einem mit Programmwechsel, zum anderen mit der Uhrzeit.
Eine Möglichkeit könnte da tatsächlich sein, sich alle vorhandenen EPG-Daten zu ziehen und im Modul nach Uhrzeit aufzubereiten, müsste dann aber zumindest wissen, welches Programm gerade läuft.

Bei den anderen Daten unterscheide ich schon zwischen Basisdaten die sich erwartungsgemäß gar nicht oder nur sehr selten ändern, zum anderen Daten die sich nur gelegentlich ändern - bei den EPG-Daten ändert sich das eben - je nach - Fernsehgewohnheit mal mehr, mal weniger. Im Übrigen ist das ja auch einstellbar.

Abhilfe könnte selbstverständlich sein, wenn man die in der Dokumentation erwähnte Update-Funktion nutzen könnte (ich vermute mal das wird push sein),

One of the major Improvements compared to the Webinterface of enigma1 is the Live-Update functionality. Changes can be automatically delivered to the webinterface without polling the server or reloading the whole page. This is realized by using a never ending Connection which is used to execute the DOM-Manipulation cmds. 

Dort habe ich auch schon versucht in anderen Foren bzw. mit dem Entwikler Kontakt aufzunehmen, wie man das nutzen könnte.
Aber selbst das WebIf-Frontend pollt den aktuellen Status…(http://192.168.178.20/api/statusinfo?_=1484429724920)

Von daher: es gibt ganz sicher noch einiges an Optimierungspotenzial!

Joachim

Expertenansicht hinzufügen->PHP Informationen

Das stimmt schon das Du die Infos nur bekommst wenn Du diese abholst dennoch kann man dies reduzieren.

Die EPG Daten unterteilen sich ja in was läuft jetzt, nächste Sendungen, gesamt EPG des Senders, MultiEPG.

Das Gesmat EPG und MultiEG reicht aus meiner Sicht vollkommen aus einmal am tag zu holen und dann in IP-Symcon abzulegen. Wenn man etwas schaut interresiert mich in erster Linie was ich da schaue und wie lange die Sendung noch läuft. Auch dies, aktuelle EPG Info must nur nur genau einaml abholen. Nämlcih dann wenn auf den Sender umgeschaltet wird. So lange ändert sich daran nämlich gar nix bis auf die Zeit die die Sendung noch läuft. Das must Du aber nicht aus dem EPG auslesen die daten hast Du ja abgeholt und kannst diese daher auch von IP-Symcon als Variable berechen lassen wann die Sendung zu ende ist. Erst wenn die Variable abgelaufen ist must Du das EPG neu abholen denn dann läuft eine neue Sendung. Ansonsten holst das das EPG zu was läuft jetzt bei jedem Umschalten ab. Wenn man wissen will was läuft ingesamt muss man dann auf eine andere Seitenansicht wechseln, erst wenn diese aktiviert wurde wird das aktuelle kurz EPG nächste zwei Sendungen abgeholt. Wenn es einen dann noch genauer interresiert klickt man auf den Sender dann geht eine Detail Seite auf dann wird das ausführliche Sender EPG abgeholt. Eigentlich weist Du jederzeit was der Nutzer macht und musst daher das EPG nur dann abholen wenn notwendig schließlich schaut man ja den Großteil einfach nur Fernsehen und nicht EPG ;).

Die Befehle als einzelne Variable abzulegen halte ich imho auch für Variablen Verschwendung. Entweder eine Integer Var mit Assoziationen verwenden dann bekommst Du schon mal 32 Befehle in eine Var bzw Zeile im Webfront oder am besten ganz weglassen und nur per Funktion aufrufen lassen und wenn man will für den Webfront eine Javascript Seite mit Fernbedienung das braucht dann nur eine einzige String Var.

…das mit der Thread Belegung ist schon sehr interessant!

Ich konnte aber nicht feststellen das irgendeiner der Enigma Threads rot wird oder unerwartet lange dort auftaucht…

Dennoch: Verbesserungspotential gibt es da sicherlich noch.

Mit dem EPG nur einmal kopieren für den Tag halte insofern für problematisch, da seltener gesehener Programme dann keine EPG-Daten haben und dieses sich auch nicht aktualisiert wenn das Programm ausgewählt wird…

Ich hoffe immer noch, dass es mir irgendwie gelingt diese Live-Update Funktion zu nutzen…
Das wäre sicherlich sehr nahe dem Optimum…

Das mit der gesamten FB-Abbildung war ein Wunsch von denjenigen, die die FB z.B. im IPS-View abbilden möchte…

Joachim

Hallo Fonzo,

ich habe mal mit

$JSONString = file_get_contents("http://192.168.178.20/api/statusinfo?");

experimentiert.

Die regelmäßige Laufzeit ist <100ms.
Man bekommt da eine Menge Informationen, die eigentlich ganz gut dazu geeignet sein kann, dann case-sensitiv die weiteren erforderlichen bzw. sinnvollen Aktionen auszulösen.

Hier mal ein Beispiel:

{"inStandby": "false", "currservice_begin": "11:50", "muted": false, "isRecording": "false", "currservice_station": "Boomerang", "currservice_serviceref": "1:0:16:193:E:85:C00000:0:0:0:", "volume": 100, "currservice_fulldescription": "What's new Scooby-Doo?
11:50 - 12:10

1. Staffel, Folge 2: Ein Alien, das stetig immer gr\u00f6\u00dfer wird, hindert das Space Shuttle am Start...
2002. 20 Min.", "currservice_name": "What's new Scooby-Doo?", "currservice_filename": "", "transcoding": true, "currservice_end": "12:10", "currservice_description": "Astronautennahrung f\u00fcr Aliens"}

Ich werde das mal intensiver verfolgen.

Joachim

Ich muss gestehen das ich mich noch nicht so mit IPS View auskenne da ich immer noch in der Produktivumgebung Mediola einsetzte auch wegen fehlender anpassbaren Slidern in IPSStudio.

Es muss doch aber eigentlich trotz allem möglich sein einfach eine Variable mit Assoziationen zu nehmen, da kann man ja trotzdem in IPSStudio dann mehrere einzelne Buttons daraus machen die dann jeweils den Wert setzten und damit den Befehl ausführen, dazu musst Du ja nicht unbedingt den Webfront mit einzelnen Boolean Variablen zuknallen oder?

Ich selber nutzte
http://".$ipadr."/web/epgservice?sRef=".$sref

in Skripten zum aktuellen Sender Info auslesen.

…das sind ja irgendwie zwei verschiedene Dinge:
Der eine soll kurz und bündig die aktuellen Statusinformationen aufzeigen, der andere liest konkret die aktuellen EPG-Daten ein…

Meine Idee wäre jetzt, auf Basis der Statusinformationen das weitere handeln abzuleiten.
Als Beispiel: Achtung das Programm hat sich geändert, jetzt diese und jene Daten der verschiedenen EPG-Daten-Ansichten aktualisieren…

Joachim

Ah ok, jetzt hab ich verstanden was Du meintest.