Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

standby + recording abfragen und starten eines Background scanners zu einer bestimmten Zeit...

  • Hallo,


    ich möchte einen Timer bauen der zu einer bestimmten Zeit einen Scanner startet.


    Um Standby zu erfragen, habe ich das gefunden

    Code
    1. from Screens.Standby import inStandby


    zu Recording is running finde ich nichts. Und wie lasse ich einen Timer laufen, der z.B. um 23 Uhr startet?:kater:


    MfG


    Zu guter letzt wie kann ich ein Satellitenradio abspielen? Also so etwas

    Code
    1. #SERVICE 1:0:2:E43:708:C8:820000:0:0:0:


    damit....??( Und wie muss ich das dann parsen....

    Code
    1. ref=eServiceReference(4097, 0, self.currentPlayingSongfFilename)
    2. self.session.nav.playService(ref)
  • Ohne Gewähr - bin noch kein Python/Enigma2-Profi
    Einen Timer startet man so (läuft dann genau 1x, nicht immer wieder):

    Code
    1. from enigma import eTimer... self.blablaTimer = eTimer() self.blablaTimer_conn = self.blablaTimer.timeout.connect(self.myFunction) # OE2.2 or higher self.blablaTimer.startLongTimer(180) # starts after 3 minutes... def myFunction(self): from Screens.Standby import inStandby # import each time to have always current state if not inStandby: print("let's print that after 180s if box is not in standby")


    und stoppen so:

    Code
    1. self.blablaTimer_conn = None #oder
    2. del self.blablaTimer_conn


    Den Rest müssen andere beantworten. Das weiss ich nicht ...

  • kommt drauf an wie du es lösen möchtest, über script und Web-Interface commands funktioniert es relativ einfach, das habe ich schon ne Weile auf meinen Boxen laufen, aber das müsste ich gegebenenfalls auf OE2.5 anpassen (auf meiner dm900 habe ich es noch nicht eingebaut)



    zappen ginge dann auch recht einfach über das Web-IF, den "Timer" kann man über einen cronjob lösen


    Wenn du das mit python lösen möchtest, bin ich der falsche Ansprechpartner ... :D

  • Was Du da auf jeden Fall Dir anschauen solltest ist:


    1. Timer.py und RecordTimer.py --> wenn Du es sauber implementieren willst solltest Du Dir davon Deine Klasse ableiten, dann kannst Du immer um XX:XX Uhr eine Aktion auslösen (kann ich Dir gerne bei helfen)
    2. Standby --> hier gibt es einen Callback, woran Du erkennen kannst, ob die Box im Standby geschickt wird...und einen Callback um zu erfahren , wann sie wieder aufgeweckt wird --> siehe FanControl.py in Components, ich hatte das damals für DMM so implementiert, dass der Lüfter auf Standby reagiert
    3. Recordings --> hier hast du 2 Möglichkeiten:
    a. Nachschauen, ob eine Aufnahme gerade läuft --> NavigationInstance.instance.getRecordings() (damit bekommst Du eine Liste aller Aufnahmen die gerade laufen) oder --> self.session.nav.RecordTimer.isRecording() (wird gerade aufgenommen als true/false)
    b. Du kannst auch durch einen Callback mitbekommen, ob eine Aufnahme gestartet wird, falls Dich das interessiert --> NavigationInstance.instance.record_event.append(self.getRecordEvent) --> das habe ich auch für FanControl.py damals benötigt ;)


    Auf keinen Fall mit eTimer arbeiten, wenn Du eine Aktion zu einer bestimmten Uhrzeit haben willst ;) Und das Webinterface benötigst Du auch nicht :)

  • Hi Dr.Best,


    ich versuche mal zu beschrieben was ich erreichen will.


    - wenn enigma startet, soll im Hintergrund ein Timer(dein Tip1?) starten, und zu einer bestimmten Zeit z.B. ab 22 Uhr im MusicCenter den Filescanner starten
    - Bedingungen:
    1. inStandby
    2. no record is running
    - wenn nicht inStandby, oder record is running, dann warte halt usw.
    - Der Scan dauert ca 4-5 Minuten bei meiner Musiksammlung ~ 16500 Songs.


    Ich habe eben mal in die RecordTimer.py geschaut -> Tilt...:( Ich bin da wirklich auf deine Hilfe angewiesen...


    MfG.

  • Ich möchte evt. laufende Aufnahmen und den normalen Betrieb der Box nicht ausbremsen mit dem Scan. Und das MusicCenter parallel läuft, hätte ich auch abgefangen. Ich lasse mich natürlich auch gern eines besseren/einfacheren belehren.:)

  • Bestimmte Startzeit kannst du auch im EPGRefresh anschauen. Pseudoaufnahme macht genau das, was Dr.Best gemeint hat. Und stammt auch von ihm. Daher sauber implementiert.

  • Hallo DrBest,


    ich habe mir das mal angeschaut. Aber leider raffe ich das noch nicht so ganz mit den Timern.
    Da der Scan im Thread läuft und auch keine hohe CPU Last erzeugt, würde ich den Scanner gern zu einer bestimmten Zeit und wenn die Box im Standby ist laufen lassen wollen.
    Ich habe mir die timer.py angeschaut....?( komme aber nicht wirklich weiter. Kannst Du auf die Beine helfen?:blinz:


    Standby Abfrage bekomme ich hin, nur wann ich wie den Timer setze...


    Gruß.

  • ...
    1. Timer.py und RecordTimer.py --> wenn Du es sauber implementieren willst solltest Du Dir davon Deine Klasse ableiten, dann kannst Du immer um XX:XX Uhr eine Aktion auslösen (kann ich Dir gerne bei helfen)
    ...
    Auf keinen Fall mit eTimer arbeiten, wenn Du eine Aktion zu einer bestimmten Uhrzeit haben willst ;)


    Auch ich hätte da Interesse zu lernen, wie man (ohne eTimer) um XX:XX Uhr etwas auslöst. Das Plugin EPGRefresh ist mir zu komplex aufgebaut - ich blicke nicht durch. Gibt es einfachere Beispiele?

  • Hallo Schweizerbox,


    Ich bin auch am EPGRefresh gescheitert. Aber unterm Strich arbeitet es auch mit eTimer. Geht aber intelligenter im Handling damit um...


    Wenn DrBest aus seinem Urlaub zurück ist und Zeit hat, wird er uns bestimmt unter die Arme greifen.:)

  • Nee, EPGRefresh arbeitet nicht mit einem eTimer. Also klar, es werden schon eTimer verwendet. Die aber nur beim Scannen. Schaut euch mal EPGRefreshTimer an. Das ist der Timer, der für Pseudoaufnahme verwendet wird. Und der basiert auf Timer.timer.