EyeTV3 RecordingDone Script zum ausschalten

Das Skript sollte sich so verhalten, als ob du ->Ruhezustand auswählen würdest. D.h. wenn ein Programm den Ruhezustand verhindert, dann macht es das auch bei diesem Skript.
 
super, danke!
 
Code:
-- RecordingDone.scpt
-- Sleep:This script sleeps your mac after EyeTV completes a recording. 

on RecordingDone(RecordingID)
    tell application "System Events" to sleep
end RecordingDone
Seit dem Einbau des Codes geht der mac in den Ruhezustand nach der Aufnahme, aber die Aufnahmen haben dafür alle 0 Sekunden Länge und können nicht abgespielt werden.
Vor Einbau des Scriptes klappten die Aufnahmen einwandfrei.

Kann es sein, dass es zu bald den Mac in den Ruhezustand schickt?
Hat jemand damit die gleichen Probleme?

*edit*
ich nun Testweise ein delay hinzugefüg vor dem Sleep:
Code:
-- RecordingDone.scpt
-- Sleep:This script sleeps your mac after EyeTV completes a recording. 

on RecordingDone(RecordingID)
    delay (60)
    tell application "System Events" to sleep
end RecordingDone
die erste Testaufnahme klappte schon mal - ich werde das weiter beobachten.
 
normal sollte das script ja nur nach einer aufnahme gestartet werden.
ein problem sollte da nur entstehen, falls du mehrere hintereinander hast.
du solltest also eher mal abfragen, ob nicht aufgenommen wird.
schau dir doch mal den anfang des themas hier an bzw die ganzen scripte.
 
wie vorhin editiert, es klappt mit dem delay derzeit, werde das aber noch beobachten.
 
Sorry, hatte dein Posting nicht richtig gelesen - und prompt das Problem mit den 2 Aufnahmen hintereinander.
Habe mir jetzt diesen Topic nun fast komplett durchgelesen und dieses Script gefunden und etwas angepasst:
Code:
on RecordingDone(recordingID)
    tell application "EyeTV"
        set limit to 30 * minutes
        set ausmachen to true
        set vorlauf to (prepad time + 1) * minutes
        set jetzt to current date
        repeat with aufnahme in start time of programs
            set diff to aufnahme - jetzt
            if diff ≥ vorlauf then set diff to diff - vorlauf
            if diff ≥ 0 and diff ≤ limit then set ausmachen to false
        end repeat
        if is_recording = false and ausmachen = true then
            activate
            set antwort to display dialog "ausschalten?" buttons {"nein", "ja"} default button "nein" giving up after 180
            if button returned of antwort = "ja" or button returned of antwort = "" then
                tell application "System Events" to sleep
            end if
        end if
    end tell
end RecordingDone
Nur zum Verständnis:
- Nach der Aufnahme kommt der Dialog, der nach 30 Sekunden automatisch in den Ruhezustand geht (anstelle vom shut down), wenn nichts geklickt wird oder auf ja geklickt wird?
- was passiert wenn zum Zeitpunkt des Dialoges gerade ein anderer Benutzer arbeitet (oder erscheint der Dialog dann dort auch?)
- was passiert wenn gleich danach eine 2. Aufnahme erfolgt (gleicher Sender bzw. auch versch. Sender)?

Danke für Deine Mühen bzw. Hilfe!
 
der dialog bleibt 180 sekunden, wenn nicht geklickt wird oder auf ja, dann sleep.
die 30 oben sind die minuten für das zeitfenster für die nächste aufnahme,
falls in den nächsten 30 minuten eine aufnahme geplant ist, dann triggert der sleep nicht.

wie das mit einem 2. benutzer ist, kann ich dir nicht sagen.
aber normal macht eyetv ja das fenster dann auf und wenn das in dem anderen benutzer läuft, sollte man ja nur da sehen.
 
Vielen Dank für die Infos.
 
bei einem 2. Benutzer kommt kein Hinweis (irgendwie auch klar, weil die ja getrennt sind von den Rechten her)
 
Es geht über Umweg auch unter Mavericks

Es schein irgendwo im Zusammenspiel zwischen EyeTV dem Abrufen "ob eine Aufnahme ansteht oder nicht" und dem "Dialog" zu haken???

Könnte es sein, dass es doch was mit der OSX Version zu tun hat? Habe zwei Systeme mit 10.9 bei denen es nicht funktioniert.
Habe das Script heute auf einem OSX 10.6.8 System ausprobiert und es funktioniert wunderbar! Hmm bin ratlos???

Hi,
ich hatte dasselbe Problem, habe es aber jetzt über einen kleinen Umweg gelöst. Dazu nutze ich das Tool Keyboard Maestro, das den Mac nach Abfrage "Ja/Nein" mit dem von OneOeight ursprünglich geposteten Script ausschaltet.

Das RecordingDone-Script sieht seither so aus:
Code:
on RecordingDone(recordingID)
	tell application "Keyboard Maestro Engine"
		do script "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
	end tell
end RecordingDone

In Keyboard Maestro legt ihr eine neue Aktion an und fügt als Baustein das Ausführen eines AppleScripts hinzu. Dort kommt dann das hier vielfach modifizierte Script nach euren Wünschen hinein. Wenn ihr oben auf "Or by Apple Script" klickt, zeigt euch Keyboard Maestro den Codeschnipsel an, den ihr für das RecordingDone-Script braucht.

Das Ganze sieht so aus:
Bildschirmfoto 2014-05-04 um 00.09.42.jpg

Jetzt kann EyeTV sein RecordingDone-Script in einem Zug abarbeiten. Erst Keyboard Maestro fängt jetzt an und fragt EyeTV, ob noch aufgenommen wird. Wenn nicht, dann führt es das Script aus, das den Computer um X Sekunden verzögert mit der Möglichkeit des Abbruchs ausschaltet.

Nun der Haken an der Sache. Keyboard Maestro kostet 35 $, ist sein Geld aber definitiv wert, wenn man es nicht nur zum Ausschalten des Computers nutzen möchte. Ich nutze es seit ca. 1 1/2 Jahren intensiv, um Arbeitsabläufe zu automatisieren. Die Möglichkeiten sind gigantisch. Keyboard Maestro kann so ziemlich alles abfragen, was der Bildschirm hergibt und im Anschluss alles Mögliche ausführen.

Wer sich bis zum 14. Mai 2014 entscheidet, kann Keyboard Maestro vergünstigt für 19,99 $ (ca. 14,40 €) hier erwerben. Wer sich zum Kauf entscheidet, darf gern den hier geposteten Link verwenden. Ich sage Danke im Voraus.
 
Danke für die Anleitung, auch wenn ich mir das Tool für den einen Zweck zu teuer ist.

Ich habe letztens Elgato bei einer Umfrage geschrieben, dass die das bitte einbauen sollen (eine Standby-Option nach der Aufnahme, wie es andere Programme auch haben) - die Hoffnung stirbt zuletzt...
 
Hallo!
Hat elgato was geändert bei der Scriptbearbeitung. Seit einiger Zeit werden diese bei mir nicht mehr abgearbeitet. Oder liegt's an Mavericks?
 
Bei mir klappt das Skript auch nicht. Es hatte funktioniert, jedoch seit ich das Skript mit der Prüfung, ob noch weitere Aufnahmen in den nächsten Minuten anstehen, drin habe, will er nicht mehr in den Ruhezustand gehen (automatisch).
Mit kommt so vor, als ob sich der iMac nicht in den Ruhezustand versetzen lässt, solange EyeTV nicht "ausgeblendet" ist - kann mich aber auch täuschen.
 
Danke an alle, die am RecordingDone-Skript mitgearbeitet haben. Ich habe es für meine Zwecke noch verändert und stelle meinen Vorschlag zur Verfügung:

Weiter oben wurde bereits ein Skriptteil vorgestellt, das überprüft, ob iTunes gerade etwas abspielt. Da bei uns iTunes häufig in „Warteposition“ ist, falls wir per AppleTV auf die Mediathek zugreifen wollen, macht das für uns nicht so viel Sinn. Also habe ich das Skript so verändert, dass es überprüft, ob iTunes aktiv ist.

Darüber hinaus habe ich die Überprüfung auf weitere aktive Anwendungen hinzugefügt, in unserem Fall und im Skript leicht zu erkennen: Safari, Open Office, Photoshop und Mail. Nur wenn diese Anwendungen inaktiv sind, versetzt das Skript den Mac in den Ruhezustand. Natürlich können die entsprechenden Skriptteile entfernt oder an die persönlichen Bedürfnisse angepasst werden. Zu beachten ist dabei, dass die Namen der Prozesse im Aktivitätsfenster nicht immer dem Softwarenamen entsprechen, siehe „OpenOffice“, dessen Prozess „soffice“ heißt.

on RecordingDone(recordingID) tell application "EyeTV"
set limit to 30 * minutes
set ausmachen to true
set vorlauf to (prepad time + 2) * minutes
set jetzt to current date
repeat with aufnahme in start time of programs
set diff to aufnahme - jetzt
if diffvorlauf then set diff to diff - vorlauf
if diff ≥ 0 and difflimit then set ausmachen to false
end repeat

set is_itunes_running to false
tell application "System Events" to get name of every process
if result contains "iTunes" then set is_itunes_running to true

set is_safari_running to false
tell application "System Events" to get name of every process
if result contains "Safari" then set is_safari_running to true

set is_openoffice_running to false
tell application "System Events" to get name of every process
if result contains "soffice" then set is_openoffice_running to true

set is_photoshop_running to false
tell application "System Events" to get name of every process
if result contains "Adobe Photoshop CS5" then set is_photoshop_running to true

set is_mail_running to false
tell application "System Events" to get name of every process
if result contains "mail" then set is_mail_running to true

if is_recording = false and ausmachen = true and is_itunes_running = false and is_safari_running = false and is_openoffice_running = false and is_photoshop_running = false and is_mail_running = false then
activate
set antwort to display dialog "Soll der Computer in den Ruhezustand versetzt werden?" buttons {"Nein", "Ja"} default button "nein" giving up after 30
if button returned of antwort = "Ja" or button returned of antwort = "" then
tell application "Finder"
sleep
end tell
end if
end if
end tell
end RecordingDone
 
nein, nutze ich nicht, hatte keine lust extra wine zu installieren, weil die zu faul waren comskip für OS X zu compilieren...
Habe jetzt auch das Comskip für mich entdeckt, das wurde jetzt von einem anderen Entwickler weitergepflegt und ist ganz aktuell und als fertiges dmg mit "installer" ladbar: https://github.com/essandess/etv-comskip/releases

Hab damit aber gleich mal mein RecordingDone Script von hier überschrieben und musste es wieder vom Backup holen (also vorher kurz sichern) :D

Benutzt du noch EyeTV oder hast vielleicht das Comskip auch noch benutzt?

Das Comskip legt nämlich ein RecordingStarted und ein RecordingDone Script in den Triggered Ordner, beim RecordingDone Script hab ich jetzt vor dem "end RecordingDone" das Script von hier eingefügt das mir jetzt Jahrelang treue Dienste geleistet hat (danke oneOeight!):

Code:
    tell application "EyeTV"
        set limit to 30 * minutes
        set ausmachen to true
        set vorlauf to (prepad time + 2) * minutes
        set jetzt to current date
        repeat with aufnahme in start time of programs
            set diff to aufnahme - jetzt
            if diff ≥ vorlauf then set diff to diff - vorlauf
            if diff ≥ 0 and diff ≤ limit then set ausmachen to false
        end repeat
        if is_recording = false and ausmachen = true then
            do shell script "afplay 'System/Library/Sounds/Blow.aiff'"
            activate
            set antwort to display dialog "ausschalten?" buttons {"nein", "ja"} default button "ja" giving up after 30
            if button returned of antwort = "ja" or button returned of antwort = "" then
                tell application "Finder"
                    sleep
                end tell
            end if
        end if
    end tell

Werde es jetzt noch testen, hoffe das klappt so, weil in dem Script kommt nach dem "end RecordingDone" noch einiges an weiterem Code. Hoffe das beisst sich nicht oder der Mac geht in Standby während das Script vielleicht noch an der Werbeerkennung arbeitet.

Bin jetzt eh gespannt ob das so funktioniert, also mit mehreren Aufnahmen, auch gleichzeitig (hab ja 4 Tuner) und die Werbeerkennung ist scheinbar auch sehr mangelhaft... kann man da eigentlich nichts einstellen? Eine wirkliche Anleitung gibt es auf der Seite ja nicht, zumindest nichts ausführliches.

Edit:
Während der Aufnahme scheint nicht viel zu passieren, zumindest von der CPU Last, nach der Aufnahme wird aber ordentlich gerödelt, 120-180% sind locker drin. Leider kam auch danach nicht der Ausschaltdialog, der Mac blieb an.

Das Sleep Script auf diese Weise in das Comskip Script einzufügen war also leider nicht die Lösung.
 
Zuletzt bearbeitet:
Bekommt man das RecordingDone Script auch bei EyeTV 4 zum Laufen?
 
Mir ists nicht gelungen. :nono:
 
@oneOeight bekommt man das auch bei EyeTV 4 irgendwie zum Laufen?

Vermisse das Script, der automatische Standby von macOS funktioniert bei mir nicht zuverlässig.
 
Zurück
Oben Unten