Ok, wusst ich nicht
Das betrifft aber nur Standby und nicht Idle oder?
Beiträge von woife_fcb
-
-
Ich danke euch vielmals.
Ich bin so ein Dummkopf. Natürlich wäre das sinnlos. Und jetzt habe ich bemerkt, dass das Plugin so funktioniert, wie es soll. War mein Fehler.
Hab der Einfachheit halber nicht aufnehmen, sonder umschalten lassen. Und da ist das Plugin so eingestellt, dass es sich unterschiedlich verhält, hab ich das jetzt richtig verstanden?Jetzt zu meinem persönlichen Problem. Kann man das Plugin trotzdem so anpassen, dass es auch bei Umschalttimerereignissen kein cec power on Signal sendet?
Für die meisten mag sich das unlogisch anhören, aber mir gehts darum, an bestimmte Sendungen erinnert zu werden, falls ich gerade vor der Glotze hocke.
Daher ist es unpraktisch, dass sich meine ganze Anlage aufgrund einer solchen Erinnerung von alleine einschaltet, wenn ich zum Beispiel gerade nicht fernsehe und im schlimmsten Fall, noch nicht einmal im Hause bin.Also kann man das umschreiben?
cu
-
Soo, hier das Logfile.
Habe einen Umschalttimer (nicht Aufnahme, aber das dürfte egal sein) aus dem Idlemode heraus eingestellt. -
Wow, danke für die super Antwort.
Ist ein Samsung TV mit AnyNet+ Hdmi-cec.
Werde versuchen ein Bootlog zu erstellen und das File dann hier posten! -
Ja genau! Leider ...
-
from Components.config import config, ConfigSubsection, ConfigEnableDisable
from Components.HdmiCec import hdmi_cec
from Plugins.Plugin import PluginDescriptorfrom CecConfig import CecConfig
config.plugins.cec = ConfigSubsection()
config.plugins.cec.sendpower = ConfigEnableDisable(default=True)
config.plugins.cec.receivepower = ConfigEnableDisable(default=False)from enigma import getExitCode
from Tools.Notifications import isPendingOrVisibleNotificationIDclass Cec(object):
session = Nonedef __receivedStandby(self):
if config.plugins.cec.receivepower.value:
from Screens.Standby import Standby, inStandby
if not inStandby and self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND and self.session.in_exec:
self.session.open(Standby)def __receivedNowActive(self):
if config.plugins.cec.receivepower.value:
from Screens.Standby import inStandby
if inStandby != None:
inStandby.Power()def __init__(self):
config.misc.standbyCounter.addNotifier(self._onStandby, initial_call = False)
hdmi_cec.instance.receivedStandby.get().append(self.__receivedStandby)
hdmi_cec.instance.isNowActive.get().append(self.__receivedNowActive)
self.idle_to_standby = Falsedef powerOn(self):
if config.plugins.cec.sendpower.value:
if self.session.shutdown:
self.idle_to_standby = True
else:
print "[Cec] power on"
hdmi_cec.otp_source_enable()def powerOff(self):
if config.plugins.cec.sendpower.value and not self.idle_to_standby:
print "[Cec] power off"
hdmi_cec.ss_standby()def _onStandby(self, element):
from Screens.Standby import inStandby
inStandby.onClose.append(self.powerOn)
self.powerOff()cec = Cec()
def autostart(reason, **kwargs):
session = kwargs.get('session', None)
if session is not None:
cec.session = session
if reason == 0:
if session is not None:
if not isPendingOrVisibleNotificationID("Standby"):
cec.powerOn()
elif getExitCode() == 1: # send CEC poweroff only on complete box shutdown
cec.powerOff()def conf(session, **kwargs):
session.open(CecConfig)def menu(menuid, **kwargs):
if menuid == "system":
return [(_("HDMI CEC"), conf, "hdmi_cec", None)]
else:
return []def Plugins(**kwargs):
return [
PluginDescriptor(where = [PluginDescriptor.WHERE_SESSIONSTART, PluginDescriptor.WHERE_AUTOSTART] , fnc = autostart),
PluginDescriptor(name = "HDMI CEC", description = "Configure HDMI CEC", where = PluginDescriptor.WHERE_MENU, needsRestart = True, fnc = menu)
] -
Ich habe Newnigma2 4.0.5 (OE 2.0) drauf.
Und über den Feed installiert.
Also wo könnte das Problem liegen?
-
Hi,
sorry.. der fix war noch nicht ganz korrekt.
Hier nun das richtige:
Diff
Alles anzeigen--- a/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCec/plugin.py +++ b/usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCec/plugin.py @@ -51,8 +51,16 @@ def autostart(reason, **kwargs): cec.session = session if reason == 0: if session is not None: + from sys import maxint #only send cec power on if it hasn been a record-timer that issued poweron - if not session.nav.wasTimerWakeup() or session.nav.RecordTimer.getNextRecordingTime() > session.nav.RecordTimer.getNextZapTime(): + nextRecTime = session.nav.RecordTimer.getNextRecordingTime() + if nextRecTime == -1: + nextRecTime = maxint + nextZapTime = session.nav.RecordTimer.getNextZapTime() + if nextZapTime == -1: + nextZapTime = maxint + wasTimerWakeup = session.nav.wasTimerWakeup() + if not wasTimerWakeup or nextZapTime <= nextRecTime: cec.powerOn() else: cec.powerOff()
das sollte nun alle fälle abdeckencya
Könntet ihr dazu bitte die gefixte plugin.py uploaden? Oder muss außerdem noch eine andere Datei gefixt werden?EDIT: ich verstehe nämlich den Quellcode nicht genau, was das a und b bedeutet, und die plus und minus am Anfang der Zeilen.