iTunes mal BiDi

:slight_smile: Danke!!

einfach nur wow!
Wenn das so weitergeht hat das bald Modulqualität und sollte standardmäßig mit ins Webfront!

Ja, das hab ich mir auch schon überlegt, ein natives Modul für IPS zu schreiben. Aber zum Einen fehlt mir da die Entwicklungsumgebung und zum Anderen die Erfahrung in Delphi…:confused:
Eventuell kann das einer von steiner´s Team übernehmen? Source müsste man dann nur nach Delphi portieren?

Im Anhang nen kleiner Vorgeschmack…

Hallo,

gibt es hier vielleicht auch die Funktion die einzelnen Lautsprecher z. B. AirPort Express zu schalten? In iTunes geht das ja unten Rechts, aber ist das theoretisch auch mit IPS möglich? Habe so ein Teil hier noch rumliegen und das wäre vielleicht auch eine Möglichkeit.

absolut cool!!! Danke :loveips:

Darauf warte ich auch! Wenn das geht, dann bin ich endlich mit meiner Audioverteilung im Haus glücklich!!!

Ich hab halt keine Airport Express, von daher ist es schwer, was zu programmieren… :frowning:

PM mit Adresse an mich, da ich mein Wohnzmmer umbaue brauch ich meine für 1-2 Monate nicht/kaum. Leih ich dir sofort!

Hier jetzt eine Version mit Unterstützung der Anzeige der Covers und der Anzeige der aktuellen Player-Position und Gesamtpielzeit des Tracks. Entfernt wurde beim Player „Stop“, da iTunes eh immer nach „Pause“ wechselt.

Benötigt werden:

  • Player (Integer-Variable):
    1: Previous Track
    2: Play
    3: Pause
    4: Next Track

  • Volume (Integer-Variable):
    eigenes Variablenprofil mit Auflösung von 1 (0-100), Suffix „%“

  • Mute (Boolean-Variable)

  • Track (String-Variable)
    Variablenprofil ~String

  • Interpret (String-Variable)
    Variablenprofil ~String

  • Album (String-Variable)
    Variablenprofil ~String

-Webradio (Integer-Variable)
Eigenes Variablenprofil von 0-3. „0“ steht für „Aus“, dann kommen drei Sendernamen.

  • Artwork (String-Variable)
    Unsichtbar, da nur zu Hilfszwecken

  • Bereits gespielt / Dauer (String-Variable)
    Variablenprofil ~String

In der config.xml müssen alle o.g. ID´s angegeben werden. Zusätzlich auch die exakten Namen der Webradio-Sender aus iTunes.

Zur Anzeige der Cover bedarf es etwas Vorarbeit: im Netz eine Grafik für die Anzeige bei keinem vorhandenen Cover suchen und diese in den Media-Ordner kopieren. Den Namen in IPS dann auf „noartwork“ abändern.
Zusätzlich müssen einmalig drei Grafiken importiert werden (PNG, JPG und BMP). Grafik selbst ist egal, es geht nur darum, dass sie als Medien verfügbar sind. Die Namen dann jeweils abändern zu „artwork.jpg“, „artwork.png“ und „artwork.bmp“. Später werden dann die Cover immer in den Medienordner kopiert und über den fest verdrahteten Namen angesprochen.

In der config.xml kann nun noch die Höhe der Covers angegeben werden. Das jeweilige Cover wird dann immer auf die gleiche Höhe (unter Beibehaltung des jeweiligen Seitenverhältnisses) skaliert. So hat man im WebFront immer die gleiche Größe des Covers.

Ich poste euch später noch die benötigten Skripte und Screenshots der Einrichtung in IPS. Jetzt ruft die Chefin erstmal zum Abendessen… :smiley:

Hier die Skripte:

Trigger_Jetzt_läuft_Titel:


<?
switch ($IPS_VALUE) {
	case "HR3":
      SetValue(51069 /*[Audio\Webradio\Status]*/, true);
		break;
	case "SWR3":
      SetValue(51069 /*[Audio\Webradio\Status]*/, true);
		break;
	case "Bayern":
      SetValue(51069 /*[Audio\Webradio\Status]*/, true);
		break;
	case "Antenne":
      SetValue(51069 /*[Audio\Webradio\Status]*/, true);
		break;
	default:
		SetValue(51069 /*[Audio\Webradio\Status]*/, false);
		if ($IPS_VALUE != "") {
			SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 4);
		}
      break;
}
?>

Hier müsst ihr noch die jeweiligen Sendernamen anpassen, damit der Trigger korrekt funktioniert.

Trigger_Artwork:


<?
switch ($IPS_VALUE) {
	case "artwork.bmp":
	   IPS_SetLinkChildID(34375 /*[Audio\Jetzt läuft...\Jetzt läuft...\Artwork]*/, 37507);
	   break;
	case "artwork.jpg":
	   IPS_SetLinkChildID(34375 /*[Audio\Jetzt läuft...\Jetzt läuft...\Artwork]*/, 28326);
	   break;
	case "artwork.png":
	   IPS_SetLinkChildID(34375 /*[Audio\Jetzt läuft...\Jetzt läuft...\Artwork]*/, 20404);
	   break;
	case "noartwork":
	   IPS_SetLinkChildID(34375 /*[Audio\Jetzt läuft...\Jetzt läuft...\Artwork]*/, 18269);
	   break;
}
?>

Trigger_Webradio_Senderauswahl:


<?
if ($IPS_SENDER == "WebFront") {
	switch ($IPS_VALUE) {
	   case 0:
	      SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 0);
			break;
		case 1:
		   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 1);
		   break;
	   case 2:
	      SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 2);
			break;
		case 3:
		   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 3);
		   break;
		case 4:
		   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 4);
		   SetValue(37100 /*[Audio\Player\Steuerung]*/, 3);
		   SetValue(51069 /*[Audio\Webradio\Status]*/, false);
		   break;
	}
}
?>

Trigger_Player:


<?
if ($IPS_SENDER == "WebFront") {
	switch ($IPS_VALUE) {
	   case 0:
			SetValue(37100 /*[Audio\Player\Steuerung]*/, 0);
	   break;
	   case 1:
	   	SetValue(37100 /*[Audio\Player\Steuerung]*/, 1);
	   break;
	   case 2:
         SetValue(37100 /*[Audio\Player\Steuerung]*/, 2);
			FS20_SwitchMode(21198 /*[Audio\Player\Pause]*/, false);
			switch (GetValue(20506 /*[Audio\Jetzt läuft...\Jetzt läuft...\Titel]*/)) {
				case "HR3":
				   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 0);
					break;
				case "SWR3":
				   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 1);
					break;
				case "Bayern":
				   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 2);
					break;
				case "Antenne":
				   SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 3);
					break;
			}
	   break;
	   case 3:
			SetValue(37100 /*[Audio\Player\Steuerung]*/, 3);
			FS20_SwitchMode(21198 /*[Audio\Player\Pause]*/, true);
			if (GetValue(51069 /*[Audio\Webradio\Status]*/) == true) {
				SetValue(22367 /*[Audio\Webradio\Senderauswahl]*/, 4);
				SetValue(51069 /*[Audio\Webradio\Status]*/, false);
			}
	   break;
	   case 4:
	   	SetValue(37100 /*[Audio\Player\Steuerung]*/, 4);
		break;
	}
}
?>

Aus den angehängten Screenshots ist die Platzierung und das jeweilige Ereignis ersichtlich. Beim Webradio braucht ihr noch ne Variable „Status“ (Boolean).

Hallo dfhome,

tolle Sache. Hab zur Zeit die iTunes Anbindung über „PlayerPal“ (HTML-Abbild von iTunes) realisiert.

Kann man in Deiner aktuellen Version IPS und iTunes auf getrennten Servern (Haussteuerung und Mediaserver) fahren und mit IP-Adressen adressieren bzw. verknüpfen?

Danke
Stephan

Ja, das geht mittlerweile. Du kannst die IP-Adresse von IPS in der config.xml angeben. Das Tool muss nur immer auf dem gleichen Rechner wie iTunes laufen. IPS kann auf nem anderen Rechner laufen.

hallo dfhome,

wollte mal Danke sagen für das tolle Tool. Läuft nach anfänglichen Schwierigkeiten ( das Problem saß mal wieder vor dem PC ) absolut einwandfrei.

An einer Lösung mit Zonen ala Airport wäre ich auch interessiert.

ist die Anzahl der Sender Webradio auf 4 limitiert oder könnte man die
ohne großen Aufwand erweitern ( nicht so dringlich )

Gruss Thomas

Hallo pedocom,

Danke, hör ich gern, wenn es läuft. Ich kann es Dir mal erweitern, sag einfach wieviel Du brauchst. Schick´s Dir dann per PM.
Das mit den Airport wird nix, ich find in der API keine Unterstützung dafür. :frowning:

Schade, gerade die Steuerung der Airports wäre genial - die wuerde mich auch megamaessig interessieren.

Hallo Zusammen,

das Script und die Steuerung sehen wirklich super aus!!!
Leider bekomme ich es bei meinem IPS nicht zum laufen.

Mir fehlen die Infos, welche Scripts wo eingebunden werden müssen, etc.
Teilweise sind die Screenshots auch unvollständig.

Könnte jemand von Euch eine Anleitung schreiben, bei dem es funktioniert.
Das wäre Klasse!!!

Danke und Grüße
Micha

Beschreib doch mal genau, wo es hängt. Eigentlich sind die Screenshots nicht unvollständig… :rolleyes:
Was klappt denn nicht?

OK, hier mal einige Fragen:

  1. Im Screenshot sieht man nicht, wo die Variablen für Mute, Track und Volume eingeordnet sind.

  2. Der Screenshot 1 und 2 unterscheiden sich beim Punkt „Player“. Hier sind die Ansichten unterschiedlich.

  3. Fehlt das Script „Automatisches Abschalten“. Ist bei Dir im Screenshot enthalten.

  4. Hast Du im Script „Trigger-Player“ den Befehl „FS20_SwitchMode“ der auf die Instanz „Pause“ zeigt. a) Was macht der Befehl? - Habe ausschließlich HM-Produkte. b) Was ist die Instanz „pause“? Ein Dummy-Modul - Mit welchen Inhalt?

Wäre super, wenn Du mir bei diesen Fragen helfen kannst.
Anbei mein Screenshot.
Soweit habe ich es mal nachgebaut.

Ok, hier die Antworten:

1: Sind bei mir unter dem Dummy-Modul „Steuerung“
2: Beim Player brauchst Du nur das Skript „Trigger_Player“
3: Bruachst Du nicht; ist für meine Haussteuerung (automatisches Abschalten der Verstärker nach 2 Minuten, wenn man auf Pause geht)
4: FS20 ist auch für meine Haussteuerung. Hatte ich geschrieben, dass man die Sachen rausmachen kann/muss/soll. Die Instanz ist ein FS20-Empfänger; hab bei mir Schalter an der Wand, um das Audio-Zeugs zu steuern.

So, ich hoffe, das hilft mal. Bei Fragen einfach melden.

Edit: Hab nochmal nen Screenshot gemacht, wie ich es momentan eingerichtet habe.