ITunes-Modul - Installation und pairing

Aus FHEMWiki
ITunes-Modul - Installation und pairing
Zweck / Funktion
Steuerung von iTunes
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Multimedia
Modulname 33_iTunes.pm
Ersteller Andre / justme1968
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Es gibt (noch nicht im trunk) ein Modul zur Steuerung von iTunes.
Das iTunes-Modul simuliert eine Original-Apple-Software-Remote und ist daher in der Lage, neben den üblichen Befehlen auch das ein/ausschalten von Airplay-Lautsprecher.
Zur Installation

  • das modifizierte DMAP.pm in die Perl-Distribution aufnehmen
  • das iTunes-Modul in den Ordner fhem/FHEM kopieren
  • dann einmalig das iTunes-Modul an iTunes pairen

Der Pairing-Vorgang kann eine Herausforderung sein - wenn's aber geklappt hat, ist die Steuerung der iTunes/Apple-TV-Geräte aus fhem heraus sehr komfortabel möglich.

Wo finde ich die erforderlichen Dateien

Aktuell nur im Forum, und zwar in diesem Post.

Pairing

Diese Beschreibung geht davon, aus, dass fhem und iTunes auf unterschiedlichen Rechnern laufen. Falls bei Ihnen fhem auf demselben mac läuft wie iTunes - siehe "Workaround" weiter unten.
Bei mir läuft fhem auf ner Fritzbox, iTunes auf dem mac.

DMAP.pm platzieren

Zunächst muss das modifizierte DMAP.pm in die Perl-Distribution des Rechners aufgenommen werden, auf dem fhem läuft. Der Ablageort ist Net/DAAP/DMAP.pm Häufig existiert der Ordner Net jedoch mehrfach, daher zunächst den richtigen Ablageort ermitteln.

  • im Terminal eingeben perl -V. Aus der Ausgabe interessiert uns nur die Suchreihenfolge, also der Inhalt von @INC
  • Die @INC-Pfade von oben nach unten prüfen und jeweils schauen, ob es in dem angegebenen Pfad den Unterordner Net/DAAP gibt. Beim ersten Treffer sind wir im richtigen Ordner angekommen. Hier die bereits vorhandene DMAP.pm umbenennen, z.B. in DMAP-Original.pm , und die hier zu verwendende DMAP.pm hineinkopieren. Danach den Rechner neu starten!

Falls in keinem der @INC-Pfade ein Ordner Net/DAAP existiert, kann man den Ordner DAAP unterhalb von Net in einem "beliebigen" @INC-Pfad anlegen und DMAP.pm hineinkopieren. Bei "beliebig" ist zu beachten, dass es natürlich der Pfad zur wirklich verwendeten perl-Version ist. Danach den Rechner neu starten!

iTunes-Modul installieren, iTunes-device anlegen

  • Nun noch das Modul 33_iTunes.pm in den Ordner fhem/FHEM kopieren, in fhem mit reload 33_iTunes.pm bekanntmachen (oder fhem neu starten). Erscheint dabei eine Fehlermeldung, dass Net::DAAP::DMAP nicht gefunden wurde, hat man im ersten Schritt den falschen Pfad erwischt :)
  • In fhem das neue iTunes-device anlegen mit
     define <name> iTunes <ip des Rechners auf dem iTunes läuft>

Pairing

  • in fhem erscheint das neue iTunes-device im Status "Pairing".
  • Mit get <name> advertisingCommand kann man sich den Befehl zum advertising anzeigen lassen. Dadurch wird gegenüber iTunes so getan, als befände isch gerade eine Apple-Software-Remote im Pairing-Modus.

Um das Advertising zu starten, werden zwei Varianten angezeigt: falls ihr fhem auf dem mac läuft, können Sie dns-sd verwenden, da dieses tool auf dem mac standardmäßig vorhanden ist. Auf anderen Rechnern prüfen Sie, ob dns-sd oder avahi installiert sind. Ist keins von beiden vorhanden, installieren Sie eines der beiden nach - oder verwenden Sie den unten beschriebenen Workaround.
Für fhem auf dem mac kann die obere Zeile verwendet werden, da dns-sd standardmäßig vorhanden ist. Dafür per copy&paste das obere angezeigte advertising-command in ein frisches Terminal-Fenster kopieren und absetzen.

  • Nun in iTunes schauen - oben rechts erscheint ein button "Remote". Diesen Klicken und als Pairing-Code "0000" eingeben.
  • Wenn alles geklappt hat, wechselt im fhem-device der Status von "Pairing" auf "Connected".

Workaround - fhem (temporär) auf mac installieren

In meiner eigenen Installation läuft fhem auf ner Fritzbox und iTunes auf dem mac. Das pairing zwischen Fritzbox-fhem und mac-iTunes wollte aber nicht funktionieren, es kam im letzten Schritt immer wieder die Meldung, dass der eingegebene Code 0000 falsch sei. Dies habe ich umgangen, indem ich

  • fhem auf dem mac installiert habe (geht schnell, da Perl ja schon vorhanden ist - einfach das .tar.gz von fhem.de herunterladen, auspacken, starten). Im mac-fhem habe ich dann ein iTunes-device angelegt und dann den oben beschriebenen Pairing-Vorgang mittels des vorhandenen dns-sd durchgeführt.
  • Anschließend habe ich aus dem iTunes-device im mac-fhem den Wert aus dem Attribut "key" kopiert und in das Fritzbox-iTunes-device übertragen, dann das mac-iTunes-device gelöscht. Ggf. kann man gleich das gesamte fhem vom mac wieder löschen - zuvor noch kurz überlegen, denn man kann es ggf. hervorragend per FHEM2FHEM verwenden, um auf den mac Systembefehle abzusetzen :)
  • Nach Neustart des mac hat sich nun mein Fritzbox-iTunes-device prima mit dem mac-iTunes verbunden.

Ziemlich von hinten durch die Brust ins Auge, aber wenn man einmal durch den Pairing-Krampf durch ist, möchte man dieses Modul nicht mehr missen. Versprochen :)
An dieser Stelle übrigen noch herzlichsten Dank an Andre für dieses klasse Modul.