Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatischer Standby mit CheckIdle

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Automatischer Standby mit CheckIdle

    16. August 2015

    Dieses Script hatte bisher auch eine Prüfung für Plex und XBMC. Leider ist es nicht mehr für die Überwachung der aktuellen Plex Home Theater / XBMC Versionen geeignet. In Plex wurde die HTTP Schnittstelle geändert und in XBMC habe ich keine Möglichkeit gefunden, die Aktivität von Plugins zu überwachen. An den Platz der Plex / XBMC Überwachung ist jetzt eine Option für die Trennung und Wiederverbuîndung von USB Laufwerken getreten. Diese Option ist weiter unten beschrieben. Alle anderen Optionen sollten weiterhin funktionieren.


    Hi@all,

    die OS interne Funktion für den automatischen Standby funktioniert nicht immer zuverlässig. Besonders EyeTV verhindert den Standby häufig. Mehrere User wünschten sich deshalb eine Möglichkeit, die Aktivitäten bestimmter Anwendungen zu überwachen und das System bei deren Inaktivität den Standby zu schicken. Daraus ist das Script CheckIdle hervorgegangen. Bei CheckIdle handelt es sich um ein Applescript, welches immer im Hintergrund läuft. Das Script überwacht dir Aktivität bestimmter Anwendungen, sowie die Idle Zeit von Tastatur und Maus. Wird in einem bestimmten Zeitraum keine Aktivität festgestellt, dass schickst das Script den Mac in den Standby. Dabei ist es egal, ob Plex oder eine andere Anwendung gestartet ist.

    Hier die beiden Threads, die zur Entwicklung des CheckIdle Scripts führten: Thread 1 Thread 2

    Im Script lassen sich mehrere Parameter einstellen. Diese bestimmen über die Funktion des Scripts, z.B. über das Logging und die zu überwachenden Anwendungen. Damit das Ganze auch für den technisch weniger versierten User nutzbar wird, habe ich eine kleine grafische Oberfläche für das Setup gebastelt. Dafür habe ich wieder die Applescript Erweiterung Pashua von Carsten Blüm verwendet. Die einzelnen Optionen werde ich im Folgenden genauer beleuchten.


    Benötigte Dateien:

    NewCheckIdle.zip

    In diesem Archiv befinden sich eine Installer.app. Diese kopiert alle benötigten Dateien in die entsprechenden Ordner.

    Nach der Installation müsst ihr 3 Dateien im Programme Ordner einmal von Hand starten:

    1. Pashua.app
    2. CheckIdle.app
    3. SetCheckIdle.app

    Ihr bekommt wahrscheinlich bei allen drei Anwendungen eine Meldung die diesem Beispiel ähnlich sieht:

    sc5.jpg

    Sobald diese Meldung einmal bestätigt wurde, taucht sie nicht wieder auf.

    Pashua wird ausserdem folgende Meldung auswerfen:

    sc4.jpg

    Das ist völlig ok. Pashua wird in der Regel nicht direkt gestartet, sondern aus einem Applescript heraus aufgerufen.

    CheckIdle wird folgende Meldung anzeigen:

    sc3.jpg

    Auch das ist in Ordnung. Die CheckIdle Konfigurationsdatei ist noch nicht vorhanden. Sie muss erst mit SetCheckIdle erstellt werden.


    Funktion des Scripts

    Bei CheckIdle handelt es sich um ein direkt ausführbares Applesript. Das Script wird manuell gestartet und läuft anschliessend in einer Endlosschleife im Hintergrund. Bei jedem Durchlauf des Scripts wird der Zustand bestimmter Anwendungen geprüft. Wenn alle Bedingungen erfüllt sind, dann wird das System in den Standby gefahren. Damit das Script keine spürbare Last verursacht, ist jeder Durchlauf um 5 Minuten verzögert. Aus dieser Verzögerung, plus der Zeit die für die Prüfung der Anwendungen aufgewendet werden muss, ergibt sich die Gesamtverzögerung bis zum Standby. Diese Zeit ist nicht fix, sondern kann irgendwo zwischen 1 - 20 Minuten nach Erreichen des Idle Zustands sein.

    Folgende Anwendungen können derzeit überwacht werden:

    - EyeTV
    - iTunes
    - VLC Player
    - QuickTime Player
    - EyeTV Export Script

    Zusätzlich lassen sich folgende Ereignisse überwachen:

    - Maus / Tastatur länger als 5 Minuten nicht benutzt
    - Ping auf andere Systeme (Clients alive)
    - Es können bis zu 3 Ordner überwacht werden; ist einer der Ordner nicht leer, erfolgt kein Standby
    - Eject / Remount von USB Laufwerken


    SetCheckIdle

    Hier nun die Beschreibung für SetCheckIdle. Die Oberfläche ist recht einfach gehalten.

    sc1.jpg


    Logfile

    Hier lässt sich das Logging einstellen. Ein Logfile kann bei der Einrichtung recht nützlich sein. Sollte das Script nicht wunschgemäss laufen, so lassen sich dem Log evtl. brauchbare Hinweise entnehmen. Folgende Einstellungen sind möglich:

    Aus - Es wird kein Log geschrieben
    Standard - Nur die Wichtigsten Ereignisse werden erfasst
    Erweitert - Ausführliches Log; besonders geeignet für die Fehlersuche

    Das Logfile wird im Home Ordner angelegt und trägt den Dateinamen CheckIdle.log.


    EyeTV Export Script

    Das Script wird automatisch ausgewertet, falls vorhanden. Wenn ein Export läuft, dann wird kein Standby Trigger abgesetzt.


    EyeTV

    Wenn aktiviert, dann wird gerpüft on EyeTV gerade aufzeichnet oder die Anwendung im Vordergrund ist. In diesem Fall wird der Standby verhindert.

    iTunes

    Hier wird geprüft, ob iTunes gerade etwas abspielt. Diese Prüfung wird 5 mal innerhalb von 5 Minuten wiederholt. Achtung: das Script kann nicht erkennen ob ein Streaming stattfindet. Wenn also z.B. ein Apple TV gerade auf das System zugreift um etwas abzuspielen, dann wird das vom Script nicht bemerkt! Daher ist das Script für Server Systeme nur bedingt geeignet. Ich habe bisher leider noch keine Möglichkeit gefunden, einen zugreifenden Netzwerkclient zu erkennen.

    VLC / QuickTime

    Auch hier wird geprüft, ob der VLC oder QuickTime gerade etwas abspielt.

    Tastatur / Maus

    Wenn aktiviert, dann geht das System nur dann in den Standby, wenn Tastatur und Maus mindestens 5 Minuten nicht benutzt wurden.

    Local Plex Server

    Alle User, die den Plex Media Server lokal betreiben (das dürfte die Mehrzahl der User sein) sollten diese Option aktivieren. Denn damit wird der Server vor dem Standby beendet und nach dem Wakeup wieder gestartet. Das ist nötig, damit das System im Standby bleibt.

    (Un)Mount Drives

    Wenn aktiviert, werden vor dem Standby alle USB Laufwerke ausgeworfen und nach dem Wakeup wieder verbunden. Damit soll erreicht werden, dass ein Laufwerk den Standby verhindert oder beim Wakeup eine Fehlermeldung über ein nicht korrektes Auswerfen erscheint.

    Ping Clients

    Mit dieser Funktion lässt sich feststellen, ob bestimmte Systeme im Netzwerk vorhanden sind. Eine praktische Anwendung wäre z.B. bei einem Apple TV. Der Zugriff durch ein Apple TV lässt sich bis jetzt nicht durch das Script ermitteln, wie schon beschrieben. Aber wenn man von der Annahme ausgeht, dass das ATV bei Nichtgebrauch ausgeschaltet wird, dann kann man mit der Ping Check Funktion feststellen, ob das ATV noch an ist. Aber es lassen sich nicht nur einzelne Clients überprüfen, sondern mehrere. Angenommen, im Haushalt sind 3 ATVs vorhanden. Man möchte nun gerne prüfen, ob alle ATV ausgeschaltet sind. Weiter angenommen, das erste ATV hat die IP Adresse 10.0.0.5. Die beiden anderen haben die Adressen 10.0.0.6 und 10.0.0.7. In diesem Fall gibt man in das erste Feld (in dem per Default 192.168.0. drinsteht) den IP Offset ein. Das wäre 10.0.0. In das zweite Feld kommt die Endnummer des ersten ATV, also die 5. Das ist der Client offset. In das dritte Feld "Clients" trägt man nun die Anzahl der zu prüfenden Clients ein. In unserem Beispiel wären das 3. So sollte das nun aussehen:

    sc6.jpg

    Das Script prüft nun die drei oben genannten Adressen. Wird bei keiner der Adressen eine Antwort empfangen, dann wird der Standby feigegeben.

    Check Folders

    Hier lassen sich bis zu 3 Ordner für die Überwachung auswählen. Das Script prüft, ob diese Ordner leer sind. Soll ein Ordner nicht mehr überwacht werden, dann mus nur der Haken vor dem Eintrag entfernt werden. Der Eintrag selbst ist beim nachsten Start von SetCheckIdle verschwunden.


    Buttons Abbrechen / OK

    Der OK Button speichert die neuen Einstellungen im Config File. Beim ersten Start wird das File im Home Ordner neu erzeugt. Der Dateiname ist SetCI.conf.

    Mit dem Abbrechen Button kann SetCheckIdle verlassen werden, ohne dass Änderungen gespeichert werden. Das Script gibt in diesem Fall folgende Meldung aus:

    sc2.jpg


    Das Ganze ist noch sehr frisch. Das CheckIdle Script läuft inzwischen zwar erfolgreich bei einigen Usern, aber für die Zusammenarbeit mit SetCheckIdle und dem Config File musste ich an vielen Stellen Änderungen und Ergänzungen anbringen. Diese Änderungen sind noch nicht ausführlich getestet! Es gibt also noch mögliche Fehlerquellen in diesem Gebilde. Deshalb würde ich mich über reges Feedback sehr freuen

    Bitte aktiviert nach der Installation zunächst das erweiterte Logfile und ladet dieses File im Fehlerfall mit eurem Posting in den Thread hoch. Das erleichtert die Fehlersuche. Ihr findet das Logfile im Home Ordner unter dem Dateinamen CheckIdle.log.

    lg

    Michael
    Zuletzt geändert von lifeflow; 16.08.2015, 22:48.
    HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

  • #2
    Einen ganz herzlichen Dank an Michael für die tolle Idee und die noch bessere Umsetzung.
    Bei mir läuft es jetzt (dank Michaels Unterstützung) ganz hervorragend.

    Danke!

    Kommentar


    • #3
      So, auch dazu habe ich eine Frage. Wird das Script (CheckIdle) automatisch mitgestartet oder muss ich es erst in den "Autostart-Ordner" verknüpfen (bei Neustart des Minis)?
      iMac-Home (Workstation+Server): Gigabyte Z87MX-D3H, i7-4770s@HD4600, 16GB Ram, 1TB SSD Samsung EVO, 3x3TB WD Red (9TB zusammengefasst), Elgato Sat-TV, Mavericks 10.9.5 mit Clover-Bootloader
      iMac-Office: Gigabyte Z77MX-D3H, i7-3770S, Zotac Geforce GT640 passiv, 16GB Ram, 1x256GB SSD Crucial, 1x2TB WD Green (Daten-Platte), 1xPioneer BluRay-LW, 1xLiteon DVD-Brenner, Mavericks 10.9.5 mit Ozmosis-Bootloader
      HTPC: Nvidia Shield TV 16GB mit Android TV
      iOS-Geräte: iPad 4 32GB, iPhone 5S 32 GB

      Kommentar


      • #4
        Frage: Wird der Plex Media Server auch überwacht? Ich streame damit auf den Plex Client an meinem Samsung TV.

        Danke dir für deine Mühe!

        Schöne Grüße

        Kommentar


        • #5
          Hi,

          @Huberer
          Du musst das Script in die Anmeldeobjekte (Autostart) einfügen.

          @ed1k
          Der Server wird nicht überwacht. Streaming allgemein nicht. Dafür habe ich bisher keine Lösung gefunden. Die "Ping Clients" Funktion soll diese Lücke rudimentär füllen. Man prüft damit, ob "streamingverdächtige" Clients im Netzwerk errreichbar sind. Wenn ja, dann gibt es kein Standby.

          lg

          Michael
          HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

          Kommentar


          • #6
            Danke. Da ich in den Anmeldeobjekte nur das "StartPlex"-Skript habe, wäre es besser dieses zuerst zu starten und danach das CheckIdle oder umgekehrt?
            iMac-Home (Workstation+Server): Gigabyte Z87MX-D3H, i7-4770s@HD4600, 16GB Ram, 1TB SSD Samsung EVO, 3x3TB WD Red (9TB zusammengefasst), Elgato Sat-TV, Mavericks 10.9.5 mit Clover-Bootloader
            iMac-Office: Gigabyte Z77MX-D3H, i7-3770S, Zotac Geforce GT640 passiv, 16GB Ram, 1x256GB SSD Crucial, 1x2TB WD Green (Daten-Platte), 1xPioneer BluRay-LW, 1xLiteon DVD-Brenner, Mavericks 10.9.5 mit Ozmosis-Bootloader
            HTPC: Nvidia Shield TV 16GB mit Android TV
            iOS-Geräte: iPad 4 32GB, iPhone 5S 32 GB

            Kommentar


            • #7
              Guten Morgen,

              das spielt keine Rolle. Das Script ist intern um 5 Minuten verzögert.

              lg

              Michael
              HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

              Kommentar


              • #8
                Neue Version: Installer und Überwachung für XBMC hinzugefügt.
                HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

                Kommentar


                • #9
                  Hallo,

                  ich nutze seit gestern das CheckIdle hier und habe nach anfänglichen Schwierigkeiten (doppelte apps/dummy apps, anderer Thread) soweit auch alles am laufen.
                  Gestern habe ich das Skript dann manuell ausgeführt und es lief auch im Dock mit, aber nach ca. 10 Minuten (nicht gemesssen) ging während EyeTV im Vordergrund auf Vollbild lief der Rechner in den Standby.

                  Gibt es dazu evtl. irgendeine Erklärung woran das liegen könnte? Ich habe das Logging heute einmal eingeschaltet über die Settings-App und sehe nun brav das er sagt "EyeTV ist frontmost... keep alive 5 min", also so wie es sein sollte.
                  Gestern war EyeTV definitiv auch im Vordergrund da ich gerade am zappen zum testen der Geschwindigkeit der Harmony war und plötzlich ging es in den Standby.

                  Kommentar


                  • #10
                    Hi,

                    bitte beobachte das mal weiter. Im Moment kann ich das nicht nachvollziehen. Wenn EyeTV im Vordergrund ist, dann sollte der Standby generell verhindert werden. Ist es ausgeschlossen, dass Du den Standby über die Harmony ausgelöst hast?

                    lg

                    Michael
                    HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

                    Kommentar


                    • #11
                      Zitat von lifeflow Beitrag anzeigen
                      Ist es ausgeschlossen, dass Du den Standby über die Harmony ausgelöst hast?
                      Ganz ausschließen kann ich das natürlich nicht, aber ich achte noch einmal darauf.

                      2 Dinge, hätte ich noch :-)
                      - Ist es möglich auch den Quicktime Player (den neuen, nicht den 7) mit in die Überwachung aufzunehmen?

                      - Abends geht der Rechner durch drücken der FB in den Standby, diese Nacht lief keine Aufnahme trotzdem war der Rechner heute früh wieder an. Evtl. hat EyeTV sich den EPG diese Nacht geholt und weckt ihn dadurch auf? Falls ja passt das ja, nur nach dem ausschalten durch mich bleibt ja EyeTV im Vordergrund und wenn der Rechner nun aufwacht, dann schickt CheckIdle diesen natürlich nicht mehr in den Standby weil ja nach dem Aufwachen EyeTV wieder im Vordergrund läuft. Henne-Ei-Problem?

                      Kommentar


                      • #12
                        Hi,

                        Zitat von rretsiem Beitrag anzeigen
                        - Ist es möglich auch den Quicktime Player (den neuen, nicht den 7) mit in die Überwachung aufzunehmen?
                        Ich habe eine neue Version hochgeladen. Die kannst Du mal testen. Quicktime ist jetzt enthalten

                        - Abends geht der Rechner durch drücken der FB in den Standby, diese Nacht lief keine Aufnahme trotzdem war der Rechner heute früh wieder an. Evtl. hat EyeTV sich den EPG diese Nacht geholt und weckt ihn dadurch auf? Falls ja passt das ja, nur nach dem ausschalten durch mich bleibt ja EyeTV im Vordergrund und wenn der Rechner nun aufwacht, dann schickt CheckIdle diesen natürlich nicht mehr in den Standby weil ja nach dem Aufwachen EyeTV wieder im Vordergrund läuft. Henne-Ei-Problem?
                        Dafür habe ich keine Lösung. Das Script kann kann nicht erkennen warum das System gestartet wurde und ob EyeTV den Standby blockieren darf. Ich sehe hier 2 mögliche Lösungsansätze:

                        1. Versuche den Zeitpunkt für das EPG Update zu verschieben, indem Du z.B. umd 20:00 Uhr ein manuelles Update anwirfst (früher ging das mal).
                        2. Schalte vor dem Standby zu Plex um.

                        Eine andere Idee habe ich im Moment leider nicht.

                        lg

                        Michael
                        HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

                        Kommentar


                        • #13
                          Hi alle - ich habe das Skript versucht, in Einsatz zu nehmen, aber es klappt nicht. Rechner geht nicht in Standby (oder wacht wieder auf - ich beobachte ihn nicht die ganze Zeit ), ausserdem habe ich öfters ein Problem dass ein "Appleskript einen Timeout meldet" (die Fehlermeldung ist ja auch nicht grad aufschlussreich...)

                          Ich würde gerne dem Problem etwas besser auf die Spur kommen - wo soll ich mit der Suche anfangen?

                          Danke.

                          Kommentar


                          • #14
                            Hi,

                            ich habe das Script nochmals neu kompiliert. Da gibt es seit Mountain Lion gelegentlich Probleme. Lade das Paket bitte herunter und installiere erneut. Anschliessend das Logfile auf "Erweitert" stellen. Wenn der Fehler wieder auftritt, oder das System nicht schlafen möchte: im Home Ordner die Datei CheckIdle.log in ein Archiv packen und hier hochladen. Bei einer Fehlermeldung bitte einen Screenshot anfertigen und auch hochladen.

                            lg

                            Michael
                            HowTos: Mac Mini Mediacenter mit Plex oder XBMC / Logitech Harmony und der Mac

                            Kommentar


                            • #15
                              Also würde er auch die Freigabe ignorieren? Denn das ist ja das, was den Mini nicht schlafen lässt. Also iMac im Ruhezustand, aber wenn die Freigabe besteht geht der Mini nicht schlafen. Die Freigabe ständig zu deaktivieren ist auch nicht die Lösung.
                              Wenn er die Freigabe ignoriert, wäre es "DAS" Programm, was ich so lange gesucht habe.
                              HTPC1: Apple TV 4 | iTunes | Kodi
                              HTPC2: Apple TV 4 | iTunes | Kodi
                              Mac/Server: iMac 5K | OS X EL Capitan | Kodi Isengard 15.2 | Fantec QB-X8US3-6G 4x4 TB

                              Kommentar

                              Lädt...
                              X