[Archiv][Modul] Squeezebox (Testversion)

Das mit dem Timer aus Symcon hat aber einen (großen) Nachteil: Wenn sich Symcon oder das Wlan in der Squeezebox mal verabschieden, klingelt es gar nicht.
Bei dem Wecker direkt in der Squeezebox gibt es den Fallback auf den normalen Klingelton.

Gruß

Ich will den nur als GUI, ist also unabhängig von IPS.
Ob der Wecker komplett autark ohne WLAN läuft weiss ist gar nicht. Da ich eine Playlist zum wecken nutze, Habe ich das nie probiert.
Michael

Hallo,
die Squeezebox weckt bei Ausfall der Internetverbindung einfach mit einem internen Klingelton.

hallo,

gibt es schon etwas neues, warte schon sehnsüchtig nach dem Wecker :slight_smile:
Oder hat hier jemand einen Codeschnippsel (Beispiel) für das setzen ( und deaktivieren) einer Weckzeit in der Squeezebox, würde mich freuen.

danke und gruß

Adam

Aktuell fehlt mir einfach die Zeit :frowning:
Aber Jahresende und der lang ersehnte Urlaub rücken ja langsam in greifbare Nähe.
Michael

Hast Du eine Idee, warum das Skript „Squeezebox Auswertung“ nach dem Abschalten der Box per Webfront stündlich den Fehler „Undefined Variable: boxID“ wirft? Oder besser: Wie kann man das beheben?

Grüße
galleto

Ich glaube du bist im falschen Thread.
Hier geht es um das Modul nicht um die Scripte.
Michael

Ups, sorry. Ich nutze zwar das Modul, aber der Fehler kommt natürlich tatsächlich von den „alten“ Skripten. Ich räum dann mal auf… :smiley:

Grüße
galleto

Hallo zusammen,

erst einmal danke für das Modul :slight_smile: Das ist echt klasse. Ich bastel gerade an meiner Visualisierung und da ist mir aufgefallen, dass ich ein kleines Problem mit der Playlist habe. Ich hatte erst etwa 180 Lieder in einer Playlist, habe aber nur 124 angezeigt bekommen. Ich dachte mir, ok vielleicht geht nicht mehr, also habe ich die Playlist gekürzt auf 124. Jetzt bekomme ich nur noch 72 angezeigt. Und wenn ich ein Lied auswähle kommt zu 99% ein anderes aus der Liste. Weiß jemand woran das liegen könnte? :confused:
Das Modul hab ich nicht angepasst, nur für die Anzeige der Playlist eine Spalte ausgeblendet und die Schrift vergrößert (sonst kann ich in IPSView nix erkennen).

Ich hoffe ich nerve nicht, deshalb ganz vorsichtig: Gibt es hier schon etwas neues (wecker)? duck

Lieben Gruß
Adam

Mich nervt es auch tierisch, dass ich nicht dazu komme hier weiterzumachen :banghead:
Dauert leider noch :frowning:

Michael

Hat sich hier etwas ergeben ?
Ich kann es im Moment gerade nicht nachstellen, da mein Modul schon halb umgebaut ist um endlich aus der Tester eine fertige Version zu bekommen.

Michael

Guten Morgen
Danke ein mal für das coole Module. Hab ein kleines Problem, wenn ich bei der Player Auswahl einen Player z.b. Badezimmer auswähle funktioniert das ganze aber wenn ich auf alle Drücke kommt nichts :(. Hat wer eine Idee was da faul sein kann?

Soweit ich weiß, ist diese Taste ohne Funktion. Das erinnert mich auch wieder dadran, das ich noch die Funktion der Gruppenbildung testen wollte…:rolleyes::stuck_out_tongue:

edit:
Hier mein Script:


<?
// Befehlsscript Gruppenbildung Squeezeboxen - v2
// von qwik 05.02.2017
// -----------------------------------------------------------------------------------------------------------------------------
$LMS_id = 51305;          										// Splitter ObjektID vom Logitech Media Server
$umschalter_id = 29848;                   							// Taster Variable von Webfront
$status_id = 20921;            									// Status Variable für anzeige Webfront
$id_zahl = LMS_GetNumberOfPlayers($LMS_id);  							// Anzahl der IDs ermitteln
$info_id_0 = LMS_GetPlayerInfo($LMS_id, 0);  							// Squezzebox Player ID Nummer
$info_id_1 = LMS_GetPlayerInfo($LMS_id, 1);          						// Squezzebox Player ID Nummer
$info_id_2 = LMS_GetPlayerInfo($LMS_id, 2);           						// Squezzebox Player ID Nummer
//-----------------------------------------------------------------------------------------------------------------------------
$name_id_0_array = array_slice($info_id_0, 5, 1);						// Emitteln des Names für ID 0	
$id_id_0_array = array_slice($info_id_0, 11, 1);       						// Emitteln des ObjektID für ID 0	
$squeezebox_0_name = implode("", $name_id_0_array);   						// Umstellen auf String
$squeezebox_0_id = implode("", $id_id_0_array);         					// Umstellen auf String	
//------------------------
$name_id_1_array = array_slice($info_id_1, 5, 1);   						// Emitteln des Names für ID 1	
$id_id_1_array = array_slice($info_id_1, 11, 1);      						// Emitteln des ObjektID für ID 1	
$squeezebox_1_name = implode("", $name_id_1_array);  						// Umstellen auf String
$squeezebox_1_id = implode("", $id_id_1_array);    						// Umstellen auf String
//------------------------
$name_id_2_array = array_slice($info_id_2, 5, 1);   						// Emitteln des Names für ID 2
$id_id_2_array = array_slice($info_id_2, 11, 1);      						// Emitteln des ObjektID für ID 2	
$squeezebox_2_name = implode("", $name_id_2_array); 						// Umstellen auf String
$squeezebox_2_id = implode("", $id_id_2_array);      						// Umstellen auf String
//-----------------------------------------------------------------------------------------------------------------------------
//echo "LMS: $id_zahl (Anzahl angemeldeter Squeezeboxen.)
";                             	// Echo Ausgabe der Squezzebox Anzahl
//echo "Squeezbox 0: $squeezebox_0_name hat die ObjektID: $squeezebox_0_id.
";            // Info zu Squeezebox 0
//echo "Squeezbox 1: $squeezebox_1_name hat die ObjektID: $squeezebox_1_id.
";            // Info zu Squeezebox 1
//echo "Squeezbox 2: $squeezebox_2_name hat die ObjektID: $squeezebox_2_id.
";            // Info zu Squeezebox 2
//-----------------------------------------------------------------------------------------------------------------------------
//-- Profil Update
if (!IPS_VariableProfileExists("dk.SqueezeboxGruppen"))
        { IPS_CreateVariableProfile("dk.SqueezeboxGruppen", 2); }
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 0, "X", "", 0x000000);
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 1, "Keine Synchronität", "", 0x0000FF);
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 2, "$squeezebox_2_name > $squeezebox_0_name, $squeezebox_1_name", "", 0x00FF00);
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 3, "$squeezebox_2_name > $squeezebox_0_name", "", 0x00FF00);
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 4, "$squeezebox_2_name > $squeezebox_1_name", "", 0x00FF00);
IPS_SetVariableProfileAssociation("dk.SqueezeboxGruppen", 5, "$squeezebox_0_name > $squeezebox_1_name", "", 0x00FF00);
//-- Ereignis Update
$EventName = "Update"; 
        $EventID = @IPS_GetEventIDByName($EventName, $_IPS['SELF']); 
        if ($EventID === false) 
          { 
              $eid = IPS_CreateEvent(0);
            IPS_SetEventTrigger($eid, 1, $umschalter_id);	
            IPS_SetParent($eid, $_IPS['SELF']); 	
            IPS_SetEventActive($eid, true); 
         IPS_SetName($eid, $EventName); 
            } 
//-----------------------------------------------------------------------------------------------------------------------------


$umschalter = GetValueFloat($umschalter_id);
// Alle Gruppen auflösen
if ($umschalter == 1)
	{
	LSQ_SetUnSync($squeezebox_0_id);
	LSQ_SetUnSync($squeezebox_1_id);
	LSQ_SetUnSync($squeezebox_2_id);
	SetValueString($status_id, "Keine Synchronisität.");
	}
// Gruppe mit Master Wohnen > Büro, Bad
if ($umschalter == 2)
	{
	LSQ_SetSync($squeezebox_2_id, $squeezebox_0_id);
	LSQ_SetSync($squeezebox_2_id, $squeezebox_1_id);
	SetValueString($status_id, "Gruppe: $squeezebox_2_name > $squeezebox_0_name, $squeezebox_1_name.");
	}
// Gruppe mit Master Wohnen > Büro // Einzelnd: Bad
if ($umschalter == 3)
	{
	LSQ_SetSync($squeezebox_2_id, $squeezebox_0_id);
	LSQ_SetUnSync($squeezebox_1_id);
	SetValueString($status_id, "Gruppe: $squeezebox_2_name > $squeezebox_0_name // Einzelnd: $squeezebox_1_name.");
	}
// Gruppe mit Master Wohnen > Bad // Einzelnd: Büro
if ($umschalter == 4)
	{
	LSQ_SetSync($squeezebox_2_id, $squeezebox_1_id);
	LSQ_SetUnSync($squeezebox_0_id);
	SetValueString($status_id, "Gruppe: $squeezebox_2_name > $squeezebox_1_name // Einzelnd: $squeezebox_0_name.");
	}
// Gruppe mit Master Büro > Bad // Einzelnd: Wohnen
if ($umschalter == 5)
	{
	LSQ_SetSync($squeezebox_0_id, $squeezebox_1_id);
	LSQ_SetUnSync($squeezebox_2_id);
	SetValueString($status_id, "Gruppe: $squeezebox_0_name > $squeezebox_1_name // Einzelnd: $squeezebox_2_name.");
	}
// Taster zurücksetzen
SetValueFloat($umschalter_id, 0);
?>

Angelegt hab ich ein Float mit dem Profil welches Automatisch erstellt wird. „dk.SqueezeboxGruppen“
Und einen String:


Das ganze sieht dann so aus:

Aktuell halt leider nicht der 100%ig Status falls man die Gruppen nicht in Symcon bildet. (z.B. iPeng App iOS)
Da wir aber nur noch Symcon zur Bedienung benutzten, ist es bei uns nicht weiter schlimm.

Moinsen,

erstmal Danke für das geile Modul … funktioniert schon garnicht so schlecht :slight_smile: !!!

Hab nur mal ne Frage

Ist es möglich nur einen Track aus der Playlist zu spielen und anschliessend wieder in Pause zu gehen ?`

Grüße
Christian

Huhu,

so direkt geht das nicht. Playlist starten:


boolean LSQ_LoadPlaylistByPlaylistID (integer $InstanzID, integer $PlaylistID)
// Lädt eine Playlist bestehend aus der in $PlaylistID übergeben ID einer Playlist.

Track auf Playlist starten:


boolean LSQ_PlayTrack (integer $InstanzID, integer $Index)
// Springt in der Playlist auf den mit $Index übergebe Position.

Und wenn dein Liedchen vorbei ist:


boolean LSQ_Power (integer $InstanzID, boolean $Value)
// Schaltet das Gerät ein true oder aus false.

genau daran scheitert es im Moment :frowning:


…das mit der Lautstärke Änderung ist drin, damit das Lied 1 aus der Playlist nicht hörbar ist beim Aufruf der Playliste. :smiley:

btw - ich hab mir für sowas eine extra Playliste gemacht mit nur dem einen Lied… :rolleyes:

Funktioniert noch nicht ganz aber danke für das skript :slight_smile:

Hallo,

mich würde generell interessieren wie es mit dem Modul aussieht? Gibt es schon etwas bezüglich Termin wann es die neue Version geben wird? Warte schon gespannt.

@qwik
ich habe eine Frage zu deinem Skript bezüglich der Gruppenbildung. Irgendwie bekomme ich das nicht zum laufen.

Ich hab jetzt einfach dein Skript genommen, die 3 Variablen geändert.


// Befehlsscript Gruppenbildung Squeezeboxen - v2
// von qwik 05.02.2017
// -----------------------------------------------------------------------------------------------------------------------------
$LMS_id = 23938;                                                  // Splitter ObjektID vom Logitech Media Server
$umschalter_id = 41142;                                               // Taster Variable von Webfront
$status_id = 10327;                                                // Status Variable für anzeige Webfront

Den Rest habe ich unverändert gelassen. Der Variablen Gruppenbildung (float) habe ich das Profil dk.SqueezeboxGruppen zugeordnet. Und das Befehlsskript als eigene Aktion zugeordnet.

Wenn ich jetzt im Webfront auf einen der Button drücke, wird dies nicht übernommen. Und ich bekomme diese Fehlermeldung:

29.03.2017 09:28:03 | PHP | Error: Error: Uncaught exception 'Exception' with message 'Unknown LSQ_PlayerInstanz' in C:\IP-Symcon\modules\IPSSqueezeBox\SqueezeBoxDevice\module.php:439
Stack trace:
#0 C:\IP-Symcon\scripts\__generated.inc.php(469): SqueezeboxDevice->SetSync('none')
#1 C:\IP-Symcon\scripts\52613.ips.php(75): LSQ_SetSync('none', 'none')
#2 {main}
  thrown
   Error in Script C:\IP-Symcon\modules\IPSSqueezeBox\SqueezeBoxDevice\module.php on Line 439
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   33 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler

Was mache ich falsch?

Danke und Grüße
Stephan