Trigger auslösen bei Rückkehr aus Standby?

  • Hi,


    gibt es irgendeine Möglichkeit (callback o.ä.), dass man eine Funktion ausführen lassen kann, wenn die Box aus dem Standby zurückkommt?


    DrMichael

  • schreibs halt in die Standby.py rein :smiling_face:

  • Zitat

    Original von DrMichael
    gibt es irgendeine Möglichkeit (callback o.ä.), dass man eine Funktion ausführen lassen kann, wenn die Box aus dem Standby zurückkommt?


    Mittlerweile bin ich schlauer:

    Python
    from Screens import Standby
    ...
    Standby.inStandby.onClose.append(meineFunktion)


    So einfach kann das Leben sein...


    DrMichael

  • Das war es wohl noch nicht ganz:


    Code
    Standby.inStandby.onClose.append(stopStandby) 
    AttributeError: 'NoneType' object has no attribute 'onClose'


    Habe das hier als Autostartfunktion:


    Code
    def autostart(reason, **kwargs):
    	global session
    	if "session" in kwargs:
    		session = kwargs["session"]
    		session.nav.record_event.append(gotRecordEvent)
    		Standby.inStandby.onClose.append(stopStandby)
    
    		return

    2 Mal editiert, zuletzt von _scorpio_ ()

  • Standby ist bis zu Eintritt des Standbys None, du musst also eine Weiche bauen und ein wenig selbst haushalten... :winking_face:

    Homescreen eurer Apple-Geräte noch nicht voll genug?


    dreaMote: Fernbedienung für Dreamboxen
    Mobile WOL: Wake-on-LAN Client für iOS mit optionalem Widget
    My Home Remote: Fernkontrolle für Homematic CCU/CCU2 optimiert für mobile Benutzung

  • Zitat

    Original von ritzMo
    ...du musst also eine Weiche bauen und ein wenig selbst haushalten... :winking_face:


    Ähm..... ???????
    Das heißt im Klartext?


    Ich scheine irgendwo einen Denkfehler zu haben.
    Hast du eventuell eine Lösung für mein Problem?

    Einmal editiert, zuletzt von _scorpio_ ()

  • Du kannst dich NICHT dauerhaft an diese Liste anhängen in Enigma2 (zumindest nicht mit Bordmitteln).


    Du musst im Prinzip jedes mal wenn du aktiv wirst und etwas machen würdest, das du nicht im Standby tun willst (z.B. Bildschirmausgabe) prüfen ob Standby != None (sprich aktiv) ist. Dann kannst du dich einmalig für den aktuellen Standby an die Liste anhängen.

    Homescreen eurer Apple-Geräte noch nicht voll genug?


    dreaMote: Fernbedienung für Dreamboxen
    Mobile WOL: Wake-on-LAN Client für iOS mit optionalem Widget
    My Home Remote: Fernkontrolle für Homematic CCU/CCU2 optimiert für mobile Benutzung

  • Demnach gibt es keine andere Möglcihkeit als das Patchen der Standby.py, wenn man das Ereignis "Standby" bekommen möchte?


    Mein Ziel war beim Schalten in Standby, bzw bei der Rückkehr, ein weiteres Ereignis auszulösen.

  • Du mist deine Funktion komplett mit dem Pluginnamen als Callback eintragen. Weil so wie du es oben stehen hast ist das eine undefinierte Variable, deswegen None Type Object.


    Und Ppatchen braucht manb dafür definitiv NICHT.



    Standby.inStandby.onClose.append(MeinPlugin.meineFunktion)

    2 Mal editiert, zuletzt von 3c5x9 ()

  • Ich komm da nicht wirklich weiter :frowning_face:


    Mal hier alles, was ich habe:


    Unter "/usr/lib/enigma2/python/Plugins/Extensions/events" liegen 2 Files:

    Code
    -rwxr-xr-x    1 root     root            0 Aug  6 16:30 __init__.py
    -rw-------    1 root     root         1044 Aug  6 16:30 plugin.py


    In der plugin.py steht folgendes:




    Trotz allem bekomme ich nur die bekannte Fehlermeldung:

    Code
    File "/usr/lib/enigma2/python/mytest.py", line 156, in __init__
        p(reason=0, session=self)
      File "/usr/lib/enigma2/python/Plugins/Extensions/events/plugin.py", line 31, in autostart
        Standby.inStandby.onShow.append(events.startStandby)
    AttributeError: 'NoneType' object has no attribute 'onShow'

    Einmal editiert, zuletzt von _scorpio_ ()

  • Wie ich schrieb musst du deine Funktion anders ansprechen!


    session.nav.record_event.append(Plugins.events.gotRecordEvent)


    Oder ähnlich. Hab die Syntax grade auch nicht wirklich im Kopf. Aber nach dem Prinzip sollte das funktionieren.


    Mal abgesehen davon, das er Standby.inStandby.onShow schon nicht kennt.

    2 Mal editiert, zuletzt von 3c5x9 ()

  • Code
    session.nav.record_event.append(gotRecordEvent)


    Wird sauber ausgeführt und erkennt wenn eine Aufnahme startet, bzw. beendet wird.


    Nur die Standby-Geschichte bereitet mir Kopfzerbrechen.