Foobar über IPS steuern

steht leider nicht viel drin:

<h1>FoobarCon is installed successfully</h1>
<img src="/foobarCon/nocover.png" width="100%">

Dann musst Du wohl doch Vertigo nutzten.

Dann musst Du wohl doch Vertigo nutzten.

wird auch nichts, da es sich zwar öffnen lässt, aber kommt ne Meldung das es nur für ein IPad ist und die Oberfläche wird nicht geöffnet.

Und was passiert wenn Du einen Ipad zum Öffnen der Oberfläche benutzt?

ne, funktioniert nicht. Kann sein das ich die Vertigo Oberfläche auch auf dem WinPC installieren muss.

Mal was OT: Was meinst du, wenn ich mich wirklich zu IPS entscheiden würde, reicht mir eine Basic Version oder eher die Pro Version. Die Frage ist reichen in der Basic Version die 250 Variablen? Ich denke mal das das Enigma2 Modul und Denon/Marantz schon etliche Variablen hat. Ich kann zwar von Basic auf Pro upgraden, bezahle dann aber auch ein Stück mehr.

Das hängt ganz davon ab was Du in einzelnen Variablen dargestellt haben willst. Gerade AV Komponenten brauchen sehr viel Variablen im Vergleich zu einem normaler Aktor. Ich verbrauche alleine für die Dreambox über 50 Variablen und für den Denon über 60 Variablen. Wenn ich dann noch z.B. noch Logitech und Sonos dazu rechne bin ich schon ganz schnell über 250.
Du musst ja aber auch nicht alle Variablen anlegen lassen das hängt ja von Dir ab was Du alles brauchst vielleicht reicht Dir ja nur der Power Zustand und der Input und so weiter aus.

Wenn du fertigen Module verwendest, statt nur das selbst zu programmieren was du wirklich brauchst, „verschwendest“ du schnell viele Variablen. Das stimmt. Aber ein Upgrade kostet nur immer etwa 30 euro extra wenn du zunächst mit ner kleineren Version anfängst (im Vergleich zu dem Preis der nächst größere Version). Wenn du wirklich zweifelst fang also lieber klein an und investiere bei Zeiten in das Update falls zu an dein persönliches Limit kommst.

Gruß,

Toni

kostet das Upgrade der Basic zur Pro Version nicht 180 €

Ja, genau. Und zusammen mit der Basic somit rund 30 Euro mehr als die Professional. :wink:

Ahhh…so meintest du das. Sorry

Habe von dem Macher der FoobarCon App einen Link bekommen in dem die HTTP Befehle beschrieben sind. Leider ist er zurzeit nicht bereit die Protokolle frei zu geben, was ich natürlich verstehen kann, steckt ja mit Sicherheit ne menge Arbeit drin.

Hier mal der Link:
https://bitbucket.org/oblikoamorale/foo_httpcontrol/wiki/Commands

Dann hast Du doch alles was Du brauchst. Nimmst einfach ein Skript und verschickst dann den passenden Befehl.
Entweder mit
file_get_contents


$command = "http://>ip<[:<port>]/installed_template_name/<?cmd=Command[&param1=param 1[&param2=param 2]][&param3=param 3]>"; // Command ergänzen
file_get_contents ($command);

oder
Sys_GetURLContent


$command = "http://>ip<[:<port>]/installed_template_name/<?cmd=Command[&param1=param 1[&param2=param 2]][&param3=param 3]>"; // Command ergänzen
Sys_GetURLContent($command);

oder
Curl

Dann viel Spass beim basteln und ausprobieren. Wenn die Befehle funktionieren kannst Du Dir dann im nächsten Schritt Variablen für den Webfront anlegen oder aber die Skripte direkt z.B. von NEO ausführen.

@Fonzo
Danke für deine Mühe. Ja das mit den Scripts da tue ich mich noch echt schwer damit.

Ja aller Anfang ist schwer aber da muss man viel Lesen und wenn dann immer noch was unklar ist halt fragen. Aber so schwer ist das ja nun auch nicht und ein guter Beginn sich ein wenig damit zu beschäftigen.

Leg einfach ein Skript an (CTRL+3) in dieses fügst Du dann die Paar Zeilen ein die Du verschicken willst siehe Doku der Wiki (dein Link).

Play


<?
$play = play();
 var_dump($play);
 
 function play()
 {
 	$command = "PlayOrPause";
	$payload = "http://192.168.55.10:8888/ajquery/?cmd=".$command; // Command ergänzen
	$play = file_get_contents ($payload);
	return $play;
 }
?>

Stop


<?
$stop = stop();
 var_dump($stop);
 
 function stop()
 {
 	$command = "Stop";
	$payload = "http://192.168.55.10:8888/ajquery/?cmd=".$command; // Command ergänzen
	$stop = file_get_contents ($payload);
	return $stop;
 }
?>

Versuche die paar Zeilen einfach nachzuvollziehen und zu verstehen und dann kannst Du Dir analog dazu auch pro Skript die restlichen Befehle anlegen und mit Ausführen vom Skript ausprobieren ob es denn funktioniert. Testen kannst Du das letztendlich nur selber weil es wohl nicht so viele gibt die Foobar überhaupt benutzten.

Ich tu mir echt schwer damit, bin ich wirklich zu blöde?:smiley: Ich weiß gar nicht wie oft ich mir schon die Doku angesehen habe, aber die enthüllt irgendwie nicht meine Fragen/Probleme die ich mit IPS habe. Gibt es denn nicht irgendwo Beispiel Videos für IPS?
Ich weiß nicht wie ich das erklären soll, ich weiß nicht die zusammenhänge…wie fange ich an…was sind die schritte die ich ausführen muss. Bestes Beispiel deine Anleitung zu dem Enigma2 Modul in dem man die Remotebefehle per Script anlegen kann, da wäre ich nie und nimmer drauf gekommen, wie ich das handhaben muss. Oder ich habe schon mehrmals versucht das Script von Bayaro wo man das Cam auslesen kann mit der Gültigkeit der Karte, ohne Erfolg. Ich kann zwar das ganze im Webfront anklicken und macht ein schwarzes Popup auf und das war es dann.

Als Beispiel:

Wo kommen die Scripte hin, müssen die in der passenden Instanz hin? Oder ist es egal wo die liegen? Bei den Scripts in denen man eine ObjectID angeben muss, verstehe ich ja das ich die egal wo ablege, da es sich die „Daten“ über die ID nimmt.
Aber wie sieht es jetzt mit Foobar aus, muss ich mir zuerst eine neue Instanz anlegen und darunter die Scripte ablegen? Aber ich denke mal das das auch egal sein müsste, da ja die IP drinnen steht.

Edit: Befehle funktionieren soweit, jetzt noch ein schönes Template.
Befehle funktionieren auch ohne ein Template im Browser oder NEO zu öffnen, aber ohne den Namen des Templates funktioniert es nicht.

Meinst du es wäre auch möglich das Cover abzufragen, wie bei deiner Anleitung mit Sonos und NEO?

Ja gibt es z.B. in den jeweiligen Kategorien z.B. Homematic. Wenn es da Bedarf gibt bestimmte Videos zu erstellen kannst Du dies ja mal als Anforderung bzw. Anfrage an das IP-Symcon Team stellen.

Dann musst Du in einem separaten Thread eine konkrete Frage stellen falls dies durch die Dokumentation nicht klar wurde. Das hilft es dem IP-Symcon Team die Dokumentation zu verbessern oder verständlicher zu machen. Auf Alle Fälle solltest Du Pro Frage schauen ob es nicht längst eine Antwort dazu gibt und falls nicht eben eine neue konkret an einem Problem ausgerichtete Frage eröffnen.

Man muss ja auch nicht gleich damit Anfangen Skripte durch andere Skripte anlegen zu lassen. Das ist sicher schon fortgeschritten und hilft beim anlegen von immer gleichen Prozessen oder größeren Projekten. Es hindert einem ja aber nicht daran mal damit anzufangen ein Skript anzulegen einen einfachen Befehl aus der Dokumention einzufügen und das Skript auszuführen und schon hast Du Dein erstes Erfolgserlebnis.

An sich ist das egal wo die liegen die werden ja über die ObjektID angesprochen und die ist eindeutig. Damit man die Skripte aber auch wiederfindet sollten diese entweder in einer Kategorie zu einem Gerät liegen oder aber unter einer Dummy Instanz. Wenn Du Skripte unter eine Variable packst werden diese nicht im Webfront visualisiert wenn diese separat liegen kann das Skript z.B. auch aus dem Webfront aufgerufen werden.

Zurück zum Thema Foobar. Hier legst Du Dir eine Dummy Instanz mit Namen Foobar an und legst darunter dann die Skripte ab. Die Skripte kannst Du dann von NEO einzeln einem Button zuordnen. Wenn Du die Sachen auch im Webfront schalten willst müsstest Du Dir z.B. eine Integervar anlegen, diesem ein Variablenprofil zuweisen und der Variable dann ein Aktionskript zuweisen.
Dazu Infos unter:
Variablenaktionen
Variablenprofile
Aktionsskript

Ob Du ein Cover Anzeigen lassen kannst hängt ja davon ab ob Foobar Dir dazu die Informationen liefert. Wenn es einen Befehl gibt der die URL zum Cover oder aber das Bild selber liefert dann lässt sich dies auch anzeigen.

Ob Du ein Cover Anzeigen lassen kannst hängt ja davon ab ob Foobar Dir dazu die Informationen liefert. Wenn es einen Befehl gibt der die URL zum Cover oder aber das Bild selber liefert dann lässt sich dies auch anzeigen.

Scheint nicht zu funktionieren mit einem Befehl, in der Command Liste ist mal nichts davon beschrieben. Wenn ich aber in Foobar selber schaue, da gibt es eine „Run Command“ Menü und da ist ein Befehl hinterlegt. Diese Befehle kann ich aber nur aus Foobar ausführen. Dabei komme ich dann ins Menü von der FoobarCon App.

Habe jetzt mal ein wenig probiert und soweit so gut. Bei manchen Befehlen bekomme ich eine Fehlermeldung, aber die Befehle gehen.

<?
$startnext = startnext();
 var_dump($startnext);
 
 function startnext()
 {
     $command = "StartNext";
    $payload = "http://192.168.178.20:8888/ajquery/?cmd=".$command; // Command ergänzen
    $play = file_get_contents ($payload);
    return $startnext;
 }
?>

und habe diesen Fehler:

Notice: Undefined variable: startnext in C:\IP-Symcon\scripts\59574.ips.php on line 10
NULL

…er möchte noch was von mir in der Reihe 10…

Des weiteren habe ich mal versucht mit den Zusatz Parameter zu arbeiten. Habe verschiedene Varianten versucht, aber vergeblich.

Habe mal die Line 10 entfernt und bekomme jetzt in der Skriptausgabe: Null

<? 
$startnext = startnext(); 
 var_dump($startnext); 
  
 function startnext() 
 { 
     $command = "StartNext"; 
    $payload = "http://192.168.178.20:8888/ajquery/?cmd=".$command; // Command ergänzen 
    $play = file_get_contents ($payload); 
 } 
?> 

return gibt die Variable aus der Funktion zurück. Dazu musst Du der Variable aber auch einen Inhalt zugewiesen haben. Du musst also in dem Fall $play durch $startnext ersetzten da Du ja zunächst $startnext den Inhalt von file_get_contents zuweist und dann diese Var aus der Funktion zurückgeben lässt.

Du must mal schauen ob und wo die Cover in Foobar abgelegt werden vielleicht kann man das Cover ja auch aus dem Verzeichnis auslesen.

Foobar ließt die Cover aus den einzelnen Ordner der Alben. Die liegen als folder.jpeg vor.

return gibt die Variable aus der Funktion zurück. Dazu musst Du der Variable aber auch einen Inhalt zugewiesen haben. Du musst also in dem Fall $play durch $startnext ersetzten da Du ja zunächst $startnext den Inhalt von file_get_contents zuweist und dann diese Var aus der Funktion zurückgeben lässt

Ich steh auf dem Schlauch. Ich habe doch $play durch $startnext ersetzt.