Frage an Gutemine zu ElektroPowersave

  • Hallo gutemine,


    ich hatte dich ja schon mal angeschrieben, wegen einer möglichen Manipulation des Eletro Powersave plugins.
    Ich hab versucht, im Plugin Code die Stelle vor dem Runterfahren in den Deep Standby zu finden und da
    etwas einzubauen, dass ein File getoucht wird. Hat aber nicht funktioniert. Wäre es möglich, dass du mir
    die richtige Stelle (wie gesagt, unmittelbar vor automatischen dem Runterfahren in den Deep Standby)
    mal postest ? Evtl. ein Auszug von 10 Zeilen drumherum, Evtl. mit Zeilennummern ?


    Danke, das wäre nett. Ich hatte zwar gemeint, ich hätte die Stelle selbst gefunden, hat aber nicht geklappt :frowning_face:


    Vielen Danke und viele Grüße


    ThommyTheKid

  • Es kann sich natürlich auch jeder andere melden, der den Code versteht...
    Ich habe einen Call eingebaut, der ein Script aufruft, nur soll dieser vom
    Ekektro Powersave Plugin vor dem automatischen Runterfahren in den Deep
    Standby gemacht werden, so dass beim Hochfahren das File, das vom Script
    angelegt wurde, gefunden wird...


    Gruß
    ThommyTheKid

  • Gute Frage, aber ich habe das Elektro schon vor 2 Jahren zu Adoption freigegeben, große Teile des Codes sind auch nicht mehr vorn mir - also ist wohl Selbsthilfe angesagt.

  • eigentlich müsste es am Ende in DoElektroSleep sein, vor diesen Zeilen würde ich "was" machen



    806 if Standby.inStandby:
    807 RecordTimerEntry.TryQuitMainloop()
    808 else:
    809 Notifications.AddNotificationWithID("Shutdown", Standby.TryQuitMainloop, 1)




    Aber ruft E2 nicht selber einen Shutdown-Skript auf, oder war das nur Start?

  • Fpr scripte schau dir die engima2.sh an da sind schon hooks drinnen (obwohl ich der Meinung bin das die enigma2.sh dafür ein schlechter Platz ist) und du hast die Returncodes vom enigma2, auch den für Deepstandby. Trozdem ist es keine gute idee bei jedem Shutdown unnötig was in den Flash zu schreiben.

  • Hi,


    ach so, meinst du wegen der "Beanspruchung des Flash Speichers" ? Dass der bei zu häufigem Schreiben
    irgendwann den Geist aufgibt... ? Aktuell hab ich das File in /usr/script getoucht. Aber das ist natürlich ein Aspekt
    den man ggf. berücksichtigen sollte. Also, da die Performance in diesem Falle eigentlich egal ist, könnte ich ja
    auch auf die Platte schreiben (dauert bissl, wenn die im Standby ist), aber das sollte ja egal sein, wenn die Box
    nachts runterfährt.


    Ich schau mal genau nach und poste die Stelle, wo ich es heute reingebaut habe und gleiche das ab mit dem Vorschlag
    von joernm6... mal sehen...


    Melde mich wieder


    Gruß
    ThommyTheKid

  • Trotzdem sind die ganzen Handstände nicht nötig - eigentlich hat Ghost alle Variante eingebaut damit man beim booten sieht warum die box bootet. Allerdings hilft dir das nur im enigma2 python Teil.


    Und die Harddisk muss sowieso zum epg save anlaufen, wenn würde ich die selbe Location benutzen.

  • Hi nochmal,


    ich hab hier mal das Codestück von DoElektroSleep, wie es bei mir aussieht. DIe Zeile mit Call hab ich eingebaut, klappt aber wohl nicht.
    Natürlich hab ich den entsprechenden Import und auch gecheckt, dass die py nach pyo kompiliert wird...



    def DoElektroSleep(self,retval):
    config_NASenable = True if config.plugins.elektro.NASenable.value == config.plugins.elektro.profile.value else Fals
    if config.plugins.elektro.profileShift.value == True:
    config.plugins.elektro.profile.value = "1" if config.plugins.elektro.profile.value == "2" else "2"
    config.plugins.elektro.profile.save()
    self.setNextWakeuptime()
    if (retval):
    # os.system("wall 'Powermanagent does Deepsleep now'")
    # Notifications.AddNotification(TryQuitMainloop,1)
    # 1 = Deep Standby -> enigma2:/doc/RETURNCODES


    global inTryQuitMainloop
    if Standby.inTryQuitMainloop == False:
    if config.plugins.elektro.NASenable.value == "true" or config_NASenable:
    call(["/usr/script/touch.sh", ""])
    ret = NASpowerdown(config.plugins.elektro.NASname.value, config.plugins.elektro.NASuser.val
    configfile.save()
    self.session.open(Standby.TryQuitMainloop, 1) # <- This might not work reliably
    #quitMainloop(1)
    else:
    # Dont try to sleep until next wakeup
    self.dontsleep = True
    #Start the timer again
    self.TimerSleep.startLongTimer(elektrostarttime)



    Das mit der Möglichkeit, beim Booten zu erkennen, ob die Box im Deep Standby war, klingt auch interessant...
    Aber außer, dass du schreibst, dass es geht, wäre auch interessant, wie es geht ...
    Kannst du hier Hinweise geben ? Oder noch einen Tip, wo ich die Call Zeile hinschieben muss ?


    Danke & Gruß
    ThommyTheKid

  • - muss es call sein?
    - die Stelle ist doof, oder hast du NAS-Powerdown?
    - wenn schon dann vor oder nach configfile.save() auf der selben Tab-Ebene
    - wenn du nur eine Datei anlegen willst, geht das einfacher/direkt in Python
    open("/tmp/x.txt","w").close()

  • Hi Joerg,


    ich hab einfach mal mit Call versucht, aber das von dir vorgeschlagene open ist natürlich auch Ok.
    Ich hab das auch mal so eingebaut, diesmal vor ' if config.plugins.elektro.NASenable.value == "true"'
    (klar, hab ich kein NAS-Powerdown, was auch immer das ist... -:) ) , hatte aber leider keine Zeit
    genau zu prüfen, ob es jetzt klappt...
    Melde mich, wenn ich es genau anschauen konnte...


    Gruß
    ThommyTheKid

  • Naja, OK, dann erklär ich mal...


    Es geht darum, für die DM8000 ein volles HDMI-CEC hinzubekommen !!


    Also es gibt einen HDMI-USB-CEC Adapter von Pulse Eight zu kaufen, in den das DVI Signal der Dream reingeht, und
    der sozusagen ein HDMI CEC Signal "aufmoduliert", so dass am Ausgang (dort, wo das HDMI Kabel zum Fernseher
    angeschlossen wird) ein vollständiges HDMI 1.4 Signal (incl. CEC) ankommt.


    P.S. CEC kann man dazu verwenden, von der DM8000 den Fernseher automatisch ein und auszuschalten.
    Ebenso sieht die Spezifikation vor, einen AMP (Verstärker), der per HDMI-ARC (Audio Return Channel)
    am TV angeschlossen ist, von jedem HDMI Gerät auf dem HDMI-CEC Bus steuern zu können.


    Ich hab das Ganze in n Stufen getestet und es funktioniert !! Das Ziel ist es, dass sich wenn man die
    Dream einschaltet, automatisch auch der TV einschaltet. Und wenn man VOLUP/VOLDOWN an der
    Dream macht, dass die Soundbar, die die TV Lautsprecher ersetzt, reagiert.


    Ein Problem bei der Sache ist, dass ich das Elektro-Powersave Plugin nutze, um wenigstens Nachts
    zwischen 0:00 und 8:00 Uhr keinen Strom zu verbrauchen... Naja, und wenn die Box am Morgen
    durch das Elektro hochgefahren wird, sollte natürlich nicht der TV angehen. Ich nutze zum Steuern
    der Befehle für HDMI-CEC ein Plugin namens ExecuteOnPowerEvent Plugin. Hieraus führe ich dann
    Scripte aus, die den TV bei PowerON EIN und bei PowerOFF ausschalten. Nun muss ich also, wenn
    das Einschaltscript läuft wissen, ob ich den TV einschalten soll. Wenn das Elektro Powersave Plugin
    den TV ausgeschaltet hat, schalte ich den TV nicht ein. Wenn man manuell einschaltet, schalte ich
    den TV an.


    Gruß
    ThommyTheKid

  • ThommyTheKid> ...HDMI-USB-CEC Adapter von Pulse Eight...
    is this only way to add missing 19 pin of HDMI for dm8k?


    p.s.
    Philip's TVs have feature `Quick Strat`
    where user can define 3 times periods when tv will be in idle mode and all other time in deep standby

  • Sehe ich das
    richtig das aber Elektro selber die Box in den Idle Mode startet... dein Script
    aber gestartet wird durch das ExecuteOnPowerEvent Plugin?

    --
    openwrt + minicom + screen = 24/7 Bootlog

  • Hi Schnello,


    nee, beim Start aus dem Elektro Powersave Deep Standby kommt kurz ein Bild
    (wenn der TV an wäre), uns es wird gefragt (popup), ob die Box nun in Standby gehen
    soll (der Default dieser Abfrage ist ja (geh in Standby) und die Abfrage bleibt 30 sec stehen).
    Wenn man nichts macht, schaltet sie sich in Standby.


    Ich hatte noch keine Zeit, mal gescheit zu schauen, ob die File Creation so jetzt funktioniert,
    aber ich hab es vor, sobald wie mnöglich zu schauen...


    MartiniB: Yes, I think as the PIN is missing on the DVI interface, this is the only way
    to implement HDMI-CEC with the DM8000. I have heard, that newer models (like 7020HD)
    do have a "real" HDMI and also suport HDMI-CEC.


    Gruß
    ThommyTheKid

  • Ok dann würde meine Lösung nicht funktionieren.


    Zitat

    I have heard, that newer models (like 7020HD)
    do have a "real" HDMI and also suport HDMI-CEC.

    Ja aber nicht so ausgebaut wie du es machen willst :thumbs_up: . Stichwort Volume...

    --
    openwrt + minicom + screen = 24/7 Bootlog

  • Hi,


    da muss ich nochmal zwischengrätschen...


    Ich hab es bereits so weit geprüft, dass auch Volume geht ! Da gibt es zumindest die Volume.py
    in der bei jedem Ändern der Lautstärke ein Event aufgerufen wird. Da kann man sich reinhängen !
    Und über den HDMI-USB-CEC Adapter ein VOLUP an den AMP ausgeben, klappt auch, das hab ich
    auch bereits verifiziert ! Natürlich wäre das bei einer Finalen Lösung dann irgendwie so zu machen
    wie beim ExecuteOnPowerEvent Plugin. Bei diesem wird Upgradesicherheit
    dadurch hergestellt, dass die Klasse erweitert wird, anstatt die Standby.py überschrieben.


    Schnello: hört sich so an, als kennst du dich im Python Teil aus... Stimmt meine Vorstellung, dass
    man sich in den Volume Event genauso reinhängen kann wie in den PowerEvent, wenn man die Klasse
    in der Volume.py überschreibt ?


    Meine Situation ist die Folgende: Ich hab leider aktuell noch kein TV mit HDMI-CEC und auch keine
    Soundbar, aber beides ist in Planung... Nur soll die Gesamtlösung dann auch alles haben, was ich
    brauche. Also TV ON/OFF und VOLUME. Dazu hab ich das Ganze in X Schritten Step by Step am TV
    von Freunden bzw. in einem befreundeten Fachmarkt probiert.


    oder meintest du die Anmerkung auf das Statement mit der 7020 bezogen ?


    Gruß
    ThommyTheKid

  • Zitat

    oder meintest du die Anmerkung auf das Statement mit der 7020 bezogen ?

    Ja. Seit ich mir meine 7020HD gekauft habe ist das genau ein Punkt über den ich besonders unzufrieden bin. Dort gibts nämlich gar keine Steuerung von externen Geräten bzgl Volume. Aber hey... es ist ja schon Super das sich der TV nicht mehr anschaltet wenn eine Aufnahme die Box startet. Man braucht halt Gedult :smiling_face:


    Zitat

    Schnello: hört sich so an, als kennst du dich im Python Teil aus... Stimmt meine Vorstellung, dass
    man sich in den Volume Event genauso reinhängen kann wie in den PowerEvent, wenn man die Klasse
    in der Volume.py überschreibt ?

    Nö eigentlich gar nicht. Würde ich mich aber auskennen würde ich mir eher das HDMICEC Plugin ansehen und missbrauchen. :smiling_face:


    Grüße

    --
    openwrt + minicom + screen = 24/7 Bootlog

  • Hi,


    kurzes Feedback zum File schreiben beim Shutdown durch Elektro - es klappt !!


    Saudumm nur, dass jetzt scheinbar der EXIT beim Einschalten NICHT MEHR GERUFEN WIRD,
    wenn die Box morgens erwacht !! Ich verstehe es nicht !


    Ich hatte den Exit immer einen Timestamp in eine fortlaufende Textdatei schreiben lassen,
    und da war mein Problem, dass immer 08:01 oder so auftauchte, der Zeitpunkt, bei dem
    die Box erwacht... Die hätte bedeutet, dass immer der TV angeht.


    Nun, nachdem ich das File beim Shutdown schreibe, und im Exit nur den TV einschalte, wenn
    das File NICHT da ist, kommt kein Exit mehr beim starten der Box um 8:00 Uhr !


    Wenn es dabei bleibt, wäre der Exit sowieso unnötig, aber es war ja zuvor definitiv so,
    dass er immer gerufen wurde. Ich hab auch das Startup to Standby Plugin eingespielt,
    aber das hatte ich damals auch...


    Gruß
    ThommyTheKid