Jump to content

Einfaches Eventghost Plugin für den DVBViewer


nuts

Recommended Posts

Für die Tasks ist derzeit nichts im Plugin enthalten.

Denke auch nicht das ich das einbauen werde.

Die Zukunft gehört dem Recordingservice.

 

Kannst aber ja trotzdem mal beschreiben wie das funktionieren sollte.

Automatisch aufwecken und DVBViewer starten? Mehr nicht?

Oder was gibts da sonst noch zu beachten?

Edited by nuts
Link to comment

Dem RecordingService mag die Zukunft gehören, aber erst nach seiner Beta-Phase und wenn er standardmäßig mit dem DVBViewer installiert wird. Auf einem Single-User-HTPC sehe ich noch keinen echten Sinn, den RS zu verwenden, solange die ganze Funktionalität auch im DVBViewer selbst steckt.

 

Ich weiß ehrlich gesagt auch gar nicht, welche Funktionen EG beim setzen eines Timers übernimmt, ich weiß nur, dass es extrem zuverlässig funktioniert, ich hatte jahrelang keine verpasste Aufnahme! Leider hat des momentane Plugin die von dir genannten schwächen, weshalb ich gerne mal deine Version ausprobiert hätte - aber wenn die Timer (noch) nicht unterstützt werden, wäre das momentan fatal.

 

Ich hatte mit dem RS auch ein Problem, von dem ich nicht weiß, ob es evtl. schon beseitigt wurde: wenn meine zwei Sat-Karten bereits durch eine Aufnahme belegt sind, kann der DVBViewer selbst immerhin noch auf Kanäle der Transponder der verwendeten Sender umschalten, bei zwei Aufnahmen auf einem Transponder belegt der DVBViewer sogar nur eine Karte und ich kann frei Umschalten. Der RS hingegen blockiert je Aufnahme eine Karte und lässt bei zwei Aufnahmen gar kein Umschalten mehr zu. Und das ist ein echtes K.O. Kriterium für den RS!

Link to comment

Was man machen könnte wäre ein Befehl, der in Abhängigkeit vom OSD unterschiedliche ID's an den DVBViewer sendet.

 

Oder gibt es weitere Abhängigkeiten für Befehle? Das sollte halt nicht zu arg ausarten.

Für ganz spezielle Konfig.'s gibts ja die command.vbs!

Link to comment
Leider hat des momentane Plugin die von dir genannten schwächen, weshalb ich gerne mal deine Version ausprobiert hätte - aber wenn die Timer (noch) nicht unterstützt werden, wäre das momentan fatal.

Aber vielleicht hat das momentane "Standard-"dvbv-PlugIn die Schwächen, weil man alles damit abdecken möchte.

Und da ist mir ein stabiles PlugIn, welche die originäre Aufgabe zuverlässig erledigt, allemal lieber als ein PlugIn, das alles kann, aber immer wieder schwächelt.

 

Gruß GBWebmaster

Link to comment

Im Prinzip hast du schon recht, aber Timeraufnahmen sind schon ein mMn wesentlicher (um nicht zu sagen "ordinärer") Bestandteil des DVB Viewers! Denkst du nicht auch?

Edited by ZappoB
Link to comment

Hey, geht mit deinem Plugin und der aktuellen EG Version "DVBViewer minimieren"?

Ich meine mich erinnern zu können, dass es Versionen gab, wo das nicht ging.

 

Auch gerade in Bezug auf d3dexclusive und z.b. Verwendung von Xbmc, das ging dann nämlich logischerweise nicht, wenn der viewer maximiert blieb.

Link to comment

Bei mir funktioniert das mit meinem Plugin. :)

Allerdings nur wenn das Orginal-Plugin dann deaktiviert wird.

 

@Aufnahme-Tasks: Also ich würde für jeden PC mit eigenen TV-Karten den RS empfehlen. Beta hin oder her das läuft super stabil und es ist die bessere Lösung.

 

Das alles über EG zu lösen ist schon möglich, aber nicht ganz so einfach.

Mir fehlt mit meinem 24/7 TV-Server dazu auch die Testumgebung und daher werde ich in die Richtung eher nichts unternehmen.

Link to comment

Im Prinzip hast du schon recht, aber Timeraufnahmen sind schon ein mMn wesentlicher (um nicht zu sagen "ordinärer") Bestandteil des DVB Viewers! Denkst du nicht auch?

Klar denke ich dies auch. Aber durch den Taskscheduler (oder eben RecService) ist dieser Punkt ja hinreichend abgedeckt.

Und eine weitere Möglichkeit wäre, ein eigenes Timer-PlugIn zu schreiben ...

Link to comment

kann man auch mehrfach belegte Tasten damit machen?

Ich hab das mal für die Abhängigkeit "OSD.isvisible" umgesetzt und Version 0.3 hochgeladen.

Edited by nuts
Link to comment
  • 3 weeks later...

Ich habe jetzt in einer stundenlangen Aktion meinen HTPC mit dem Recordingservice ausgestattet und muss leider feststellen, dass das wirklich alles noch ziemlich bescheiden funktioniert. Die o. g. genannte Einschränkung mit zwei gleichzeitig laufenden Aufnahmen ist auch aktuell noch genau so vorhanden, einige andere Kleinigkeiten (wie z. B. Start- und Stop-Skript) will ich gar nicht aufführen. Auf einem Single-HTPC-System ist der RS mMn. noch nicht endbenutzertauglich und auch ziemlich sinnlos.

 

Da ich leider auch mit dem offiziellen EG-Skript die bekannten Probleme habe, würde ich wirklich gerne deine Bibliothek testen, aber das setzen der Wakeup-Timer (mutmaßlich in der Aufgabenplanung von Windows) sollte dann auch funktionieren.

 

Denkst du, dies wäre eine Erweiterung, die du noch einbauen würdest? Ich kann leider überhaupt nicht sagen, wie dass mit EG mitgelieferte Skript das handhabt, ich wüsste noch nicht einmal, wo ich da nachsehen sollte.

Link to comment

Und was spricht gegen den Task Scheduler?

 

Weiss nicht so recht ob man sowas über EG lösen sollte. :whistle:

Das Problem ist nicht irgendwelche Tasks zu setzen, sondern viel komplexer ...

Edited by nuts
Link to comment

Und was spricht gegen den Task Scheduler?

Das wenn ich noch wüsste... ich habe nur noch dunkel im Kopf, dass irgendwelche Probleme den Umstieg zu EG forciert haben - aber gut, ich kann das ja so noch mal versuchen, wenn ich eh schon am rumstricken bin. Ein Backup von meinem System habe ich ja ;)

Link to comment

Versuchs mal mit dem Task Scheduler!

Und wenn etwas zum Verhalten wie mit dem normalen EG-Plugin fehlt kann ich ja mal schaun ob das umsetzbar ist.

Link to comment

Das wenn ich noch wüsste... ich habe nur noch dunkel im Kopf, dass irgendwelche Probleme den Umstieg zu EG forciert haben - aber gut, ich kann das ja so noch mal versuchen, wenn ich eh schon am rumstricken bin. Ein Backup von meinem System habe ich ja ;)

 

Es war einmal vor langer Zeit, da gabs einen TaskScheduler der hat nicht sofort Daten in den Aufgabenplaner geschrieben. Der hat das immer bei Programmende gemacht. Da haben die HTPC user dann den EG benutzt. Damals... ;)

 

Soweit ich weiss schreibt der TaskScheduler schon seit einer Weile sofort Daten in den Aufgabenplaner.

Link to comment
Ich hatte mit dem RS auch ein Problem, von dem ich nicht weiß, ob es evtl. schon beseitigt wurde: wenn meine zwei Sat-Karten bereits durch eine Aufnahme belegt sind, kann der DVBViewer selbst immerhin noch auf Kanäle der Transponder der verwendeten Sender umschalten, bei zwei Aufnahmen auf einem Transponder belegt der DVBViewer sogar nur eine Karte und ich kann frei Umschalten. Der RS hingegen blockiert je Aufnahme eine Karte und lässt bei zwei Aufnahmen gar kein Umschalten mehr zu. Und das ist ein echtes K.O. Kriterium für den RS!

Dieses Problem ist nach wie vor vorhanden und auch nicht ganz zufriedenstellend.

 

Für den RecService spricht aber ganz eindeutig der Umstand, dass er viel weniger Resourcen benötigt und bei einer Aufnahme der dvbv nicht laufen muss. Ich hatte ganz viele kaputte Aufnahmen, weil sich z.Bsp. der dvbv bei irgendeiner Aktion aufgehängt hatte und ich diesen dann nur durch einen "Abschuss" wieder in die Spur brachte. Die Aufnahme ist dann naürlich zweigeteilt ... Dieses Problem hatte ich mit dem RecService noch nie.

 

Aber Du hast schon recht, dieses Verhalten ist das Hauptproblem des RecService ... :(

 

 

Gruß GBWebmaster

Link to comment

Es war einmal vor langer Zeit...

Ich sehe gerade, dass sich beim TaskScheduler seit 4 Jahren nichts mehr verändert hat, zumindest im offiziellen DL-Bereich. Gibt es wo anders etwas aktuelleres?

Link to comment

Back to topic:

 

Mal vorbeugend - nicht auf der Todo-Liste steht (weil ich es nicht brauche und es in meinem "Sendcommnd-Plugin" nicht haben will):

-Events abfangen (wenn dann in einem extra Plugin)

Entschuldige, wenn das eine blöde Frage ist, aber heißt dass, das von deinem Plugin z. B. ein aufpoppender Dialog im DVBViewer nicht erkannt wird?

Link to comment

In Prinzip schon.

Auf alle Events, die der DVBViewer so abfeuert, wird gar nicht eingegangen.

 

Besonders kompliziert ist das nicht, aber ich brauche das wie schon gesagt nicht und möchte mein Plugin einfach halten.

Wenn du mir sagen kannst wie das genau aussehen soll kann ich versuchen ein Plugin nur für die Events zu schreiben.

Einfach nur die DVBViewer-Events als EG-Events zeigen?

Link to comment

@nuts: Ich trage mich mit dem Gedanken, Dein EG-Plugin einzusetzen. Dazu noch eine Verständnisfrage: Wenn das EG-Plugin einen Befehl an den DVBViewer schickt, wird dann für diese Action auch die Command.vbs durchlaufen? Das wäre unbedingt notwendig, da ich einige benutzerdefinierte Aktionen je nach Situation mehrfach belegt habe.

Link to comment

Die Command.vbs wird bei jeder Action-ID > 20479 aufgerufen

Die vordefinierten ID's 20480 bis 20489 im Plugin sind quasi nur eine Einrichtungshilfe.

 

Das Plugin macht nichts anderes als Action-ID's an den DVBViewer zu schicken.

Alles andere ist DVBViewer intern (command.vbs usw.) und läuft wie gewohnt ab.

 

Eine typische command.vbs (osd.isvisible) Abfrage ist im Plugin schon enthalten.

Edited by nuts
Link to comment

 

Todo:

-den konfigurierbaren Sendactions Befehl wie im Orginal-Plugin einbauen.

 

 

Ist das Absicht, dass das nicht konfigurierbar ist? Habe jetzt noch ein "return True" hinzugefügt. Jetzt kann man den SendAction Befehl konfigurieren.

 

Hoffe mal, es stört Dich nicht, dass ich Dein Plugin verändert habe. Der entsprechende Code Abschnitt sieht jetzt so aus:

 

class SendAction(eg.ActionBase):

   def __call__(self, myAction=0):

       if self.plugin.dvbviewer2 is None:
           try:
               self.plugin.dvbviewer2 = GetObject(Class="DVBViewerServer.DVBViewer")

           except pythoncom.com_error:
               self.plugin.dvbviewer2=None
               self.plugin.TriggerEvent('DVBViewer not available')
               #eg.PrintError("Error GetObject - DVBViewer not available?")
               return

       try:
           self.plugin.dvbviewer2.SendCommand(myAction)

       except pythoncom.com_error:
           self.plugin.dvbviewer2=None
           self.plugin.TriggerEvent('DVBViewer not available')


   def Configure( self, myAction = 0 ):
       panel = eg.ConfigPanel()
       actionCtrl = panel.SpinNumCtrl(myAction, min=0, max=999999, fractionWidth=0, integerWidth=6)
       panel.AddLine("Action-ID ", actionCtrl)

       while panel.Affirmed():
           panel.SetResult(actionCtrl.GetValue())
return True

Edited by dbraner
Link to comment

Hm habs gerade nochmal mit der hier hochgeladenen Version 0.3 versucht und bei mir ist der Befehl konfigurierbar. :wacko:

Ich bin leider auch kein Python-Fachmann aber wieso sollte ein "return true" ganz zum Schluss der Funktion ein Unterschied machen?

 

 

P.S. Verbesserungen am Plugin stören mich nicht und sind ausdrücklich erlaubt. :)

Edited by nuts
Link to comment

Hm habs gerade nochmal mit der hier hochgeladenen Version 0.3 versucht und bei mir ist der Befehl konfigurierbar. :wacko:

 

Bei mir kam immer der Hinweis, dass keine Konfiguration des Befehls möglich ist. Ich habe mir dann den Code im alten DVBViewer-Plugin angeschaut und das dann entsprechend geändert.

 

Möglicherweise erwartet EG eine Rückgabe und ohne expliziten Return-Befehl ist es Zufall, welches Ergebnis entsteht.

 

Jedenfalls funktioniert das ganze zusammen mit dem IMON-Plugin sehr gut. Das IMON-Plugin generiert die Events und Dein Plugin führt die Befehle aus. Heute werde ich das von meinem Test-PC auf den Wohnzimmer-PC übernehmen und bin dann endlich nicht mehr von den Eigenmächtigkeiten des IMON-Managers abhängig :tongue:

Link to comment

Hm ich habe auch in anderen Plugins gestöbert und da ist das meist auch ohne "return true".

Ich übernehm das gern, aber ich wüsste zuerst gerne wieso und weshalb. :)

 

Diese Zeile hast du auch verändert:

actionCtrl = panel.SpinNumCtrl(myAction, min=0, max=999999, fractionWidth=0, integerWidth=6)

Vielleicht noch andere Dinge geändert?

Edited by nuts
Link to comment

Hm ich habe auch in anderen Plugins gestöbert und da ist das meist auch ohne "return true".

Ich übernehm das gern, aber ich wüsste zuerst gerne wieso und weshalb. :)

 

Diese Zeile hast du auch verändert:

 

Vielleicht noch andere Dinge geändert?

 

Nein sonst nichts. Die o.g. Änderung legt nur einen anderen Wertebereich für die kleinen Pfeilchen rechts von der ActionId im Konfigurationsfenster fest. Der Wert bei Dir erschien mir etwas groß, spielt aber wirklich keine Rolle.

 

Wenn das Return True bei Dir keine Probleme macht (sonst hat sich ja auch kein anderer User beschwert), lass es so wie es ist.

Link to comment

Der Wert bei Dir erschien mir etwas groß, spielt aber wirklich keine Rolle.

Mein Wertebereich entspricht dem was der DVBViewer als Action-ID annehmen kann. :)

 

@Rest: Bei euch funktioniert der Sendactions-Befehl oder? :wacko:

Link to comment
  • 2 weeks later...
  • 1 year later...

Hallo,

 

ich muss dieses Thema nochmal hochholen.

 

Ich habe aktuell ein kleines Problem mit diesem Plugin. Wenn der PC in Standby geht und dann wieder aufwacht, funktioniert das Plugin nicht mehr. In Eventghost gibt es stattdessen Fehlermeldungen. Erst ein Neustart von Eventghost behebt das Problem.

 

Alternative Lösung: Vor dem Standby wird der EventGhost Prozess gekillt und Eventghost nach dem Aufwachen neu gestartet.

 

Das ist aber die harte Tour. Gibt es hierzu eine andere Lösung?

 

Würde ungern auf das große DVBViewer Plugin wechseln. Das ist mir für meine Bedürfnisse einfach zu unhandlich.

 

 

Link to comment

Hm ich beende EG auch immer vor dem Standby.

Müsste ich erstmal ausprobieren. Wie wird der Standby ausgelöst?

 

edit\ Hm bei mir scheint das zu funktionieren (Standby direkt über den DVBViewer ausgelöst).

Welche Fehlermeldungen kommen denn bei dir?

Edited by nuts
Link to comment

Ich löse den Standby aus, indem ich aus Eventghost heraus ein AutoIt Script aufrufe, das zunächst den DVBViewer beendet, einige Netzlaufwerke entfernt und noch ein paar andere Dinge erledigt. Am Schluss kommt dann das Standby.

 

Mir scheint, das Plugin hat ein Problem, wenn beim Aufwachen der DVBViewer nicht aktiv ist. Den Beende ich nämlich immer beim Standby und starte ihn neu beim Aufwachen.

 

Bei meinem jetzigen Workaround wird Eventghost nach dem DVBViewer gestartet. Dann ist alles ok. Werde heute abend mal die Fehlermeldungen posten.

 

Wie beendest Du eigentlich Eventghost? Ich habe das mal mit einem Python-Befehl probiert. Das funktioniert aber nicht zuverlässig. Manchmal bleibt Eventghost aktiv, allerdings mit einem roten statt einem grünen Dreieck. Dann hilft nur ein Neustart, um es wieder zu aktivieren.

 

 

Hm ich beende EG auch immer vor dem Standby.

Müsste ich erstmal ausprobieren. Wie wird der Standby ausgelöst?

 

edit\ Hm bei mir scheint das zu funktionieren (Standby direkt über den DVBViewer ausgelöst).

Welche Fehlermeldungen kommen denn bei dir?

Link to comment

Ich beende EG mit dieser Zeile "wx.CallAfter(eg.app.Exit)" (Python Skript in EG).

Das klappt eigentlich zuverlässig.

 

Hilft es nach dem dem Standby etwas zu warten bis der DVBViewer gestartet wird?

 

P.S. Welche Fehlermeldungen kommen genau?

Link to comment

So, hat etwas gedauert. Hier die Fehlermeldungen in Eventghost. Es wurde die Taste 2 gedrückt, um den Kanal umzuschalten. Das Ergebnis:


MceRemote.Mce.Num2
   Channel2 - KEY 2
      DVBViewer simple: Channel2
         Fehler in Befehl: "DVBViewer simple: Channel2"
         Traceback (most recent call last) (1610):
           File "C:\Program Files\EventGhost\eg\Classes\ActionBase.py", line 170, in CallWrapper
             return self(*args)
           File "C:\Program Files\EventGhost\plugins\DVBViewerSimple\__init__.py", line 330, in __call__
             self.plugin.dvbviewer2.SendCommand(self.value)
           File "win32com\client\dynamic.pyc", line 516, in __getattr__
         AttributeError: DVBViewerServer.DVBViewer.SendCommand
Der DVBViewer lief dabei natürlich.

 

Zum Thema Beenden von Eventghost: Ich habe den gleichen Befehl wie Du benutzt. Da wird Eventghost bei mir aber nur manchmal beendet. Manchmal wechselt auch nur das Icon in der Taskleiste von Grün auf Rot und dann passiert nix mehr. Selbst ein Neustart von Eventghost hilft nur, wenn man auch den PC neu startet.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...