Mac OS X Programme steuern (iTunes, Airfoil, Spotify, OSX-System)

Begonnen von Loredo, 14 September 2014, 16:14:43

Vorheriges Thema - Nächstes Thema

Loredo

Hossa,


ich arbeite gerade daran, Mac OS X mit einer JSON API auszustatten, die es ermöglicht Programme zu steuern, die auch lokal per AppleScript gesteuert werden können.


Das Projekt ist schon sehr weit, aktuell kann man schon Programme starten und beenden und folgende Programme explizit steuern bzw. deren Status abfragen:


- iTunes
- Spotify
- Airfoil (unvollständig)
- OSX System (unvollständig)


Das Ziel des ganzen ist dann anschließend ein Modul für FHEM zu schreiben, mit welchem man den Mac komplett fernsteuern kann.
Ich weiß, im Falle von iTunes (und ggf. auch anderer Programme) gibt es auch andere Möglichkeiten diese fernzusteuern. Allerdings ist das bei jedem Programm dann wieder irgendwie anders, alle funktionieren unterschiedlich und man kann  auch nicht immer jede Info abfragen oder setzen.


Apple hat mit AppelScript eine extrem mächtige Schnittstelle für Programme eingebaut und viele Programme unterstützen diese auch. Daher fand ich es jetzt logisch mal zu versuchen hier anzusetzen. Im Falle von iTunes funktioniert schon extrem viel, ebenso Spotify. Bei Airfoil (meine persönliche Intention für dieses Projekt) muss ich mich noch durch AppleScript durchkämpfen.


Das FHEM Modul habe ich noch nicht angefangen. Die JSON API für den Mac steht allerdings schon hier bereit zum Testen:
https://github.com/jpawlowski/JSON-OSXControl


Alles was gebraucht wird ist ein lokaler Webserver mit PHP; ich empfehle MAMP dafür zu installieren.


Freue mich auf erstes Feedback  :)




Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz

Hallo!

Auf sowas warte ich schon lange :D

Ich hab das jetzt mal ausprobiert, leider bekomm ich nur fehlermeldungen.

zB
index.php?app=System&command=getStatus
{"app":"System","command":"getStatus","result":"OSASCRIPT_ERROR","msg":"23:37: execution error: An error of type -10810 has occurred. (-10810) [osascript -e 'tell app \"System Events\"' -e 'system info' -e 'end tell']","value":false}

Bei mir liegt das Verzeichnis in /Sites auf einem MacMini mit OS X Server.

Eine Idee was ich falsch mache?


Grüße

Loredo

Unter welchem Benutzer läuft denn dein Webserver?
Vermutlich liegt es daran, dass bisher noch für einige AppleScript-Befehle ein Passwort-Fenster bestätigt werden musste.



Schau mal, ob die aktualisierte Version funktioniert. Du musst wie in der Readme beschrieben sudo-Rechte an den Benutzer vergeben, unter dem der Webserver läuft.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz

Zitat von: Loredo am 22 September 2014, 11:55:57
Unter welchem Benutzer läuft denn dein Webserver?
Gute Frage :D Ich hab damals nur die OSX Server App installiert soweit ich mich erinnern kann, aber ich schaue mal nach ob ich irgendwo was finde. Unter welchem Benutzer sollte der Webserver laufen?

Die aktualisierte Version versuche ich auch sobald ich zuhause bin.


Grüße

Loredo

Siehe Readme.
Die Empfehlung ist MAMP zu installieren, welche per Default unter dem User läuft, mit dem man angemeldet ist ;-)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz

Ich hab jetzt die neue Version hochgeladen und auch die Zeile in visudo eingetragen.
Jetzt bekomme ich diese Rückmeldung:
[{"app":"System","command":"getStatus","result":"OSASCRIPT_ERROR","msg":"sudo: no tty present and no askpass program specified [sudo osascript -e 'tell app \"System Events\"' -e 'system info' -e 'end tell']","value":false}]

Deutet auf
ZitatVermutlich liegt es daran, dass bisher noch für einige AppleScript-Befehle ein Passwort-Fenster bestätigt werden musste.
hin oder?

Eigentlich will ich ungern MAMP installieren da OSX schon alles benötigte mitbringt, nur mysql hab ich nachinstallieren müssen. Leider finde ich aber auch in der Server App nichts was auf einen Benutzer hinweist.

Ich werde mal google fragen, vielleicht finde ich was.

Grüße

Loredo

Diese Meldung besagt, dass du sudo nicht richtig eingerichtet hast für den Benutzer, unter den der Webserver läuft.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz

Ok mit ps aux | egrep '(apache|httpd)' hab ich herausgefunden das der apache unter dem user _www läuft.
Nun klappts :)

Echt klasse was da schon geht, gibts irgendwo eine liste bzw nach was könnte ich da suchen welche Programme noch unterstützt werden? iStat Menus würde mir da als erstes einfallen.

Grüße

Loredo

Welche Programme explizit unterstützt werden siehst du, wenn du die Variable "app" leer lässt.
Es werden aber grundsätzlich auch einige Standardbefehle für alle Apps unterstützt. Einfach die Variable auf den App-Namen setzen, wie er in OSX verwendet wird und die Variable "command" leer lassen, um eine Übersicht der möglichen Kommandos zu erhalten. Das gilt natürlich auch für explizit unterstützte Apps, da ist das Kommando-Set entsprechend größer.


Die Kommando-Bibliothek gibt einen Eindruck über aktuell unterstützte Apps:
https://github.com/jpawlowski/JSON-OSXControl/tree/master/cmdDB/apps


Nach dem Schema der dortigen Apps kann auch gerne jeder weitere App-Module einreichen, um erweiterte Befehle zu unterstützen (z.B. für iStat Menus, auch wenn ich da den Sinn nicht so sehr sehe. es geht ja um's steuern, nicht um irgend welche Statistiken).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

fhainz

Ok danke für die Infos!

Zitat von: Loredo am 23 September 2014, 19:50:34
z.B. für iStat Menus, auch wenn ich da den Sinn nicht so sehr sehe. es geht ja um's steuern, nicht um irgend welche Statistiken.
Ja klar vorranging gehts ums steuern, aber wenns möglich wäre ein paar Temperaturen mitzuloggen wäre das schon ganz nett.

Grüße

Loredo

iStat Menu hat wohl keine AppleScript Schnittstelle (siehe AppleScript Editor >> File >> Open Dictionary).
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

holzwurm83

Hallo zusammen,

ich weiß nicht wie ich den Beitrag nur übersehen konnte?!

Geht es hier noch generell weiter? Gibt es auch schon eine Integration in Fhem, die ich auch übersehen habe?

Gruß und danke für euer Feedback
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN