IPSSonos

Allles Klar :slight_smile: nun funktionierts, die Bibliothek wars :slight_smile:
Was noch schön wäre wenn man die Lautstärke der TTS Ansage noch einstellen könnte.

Nachtrag : Die Lautstärke ist bei mir immer 0 % bei der Ansage ?
Noch ein Nachtrag : Wenn ich den Radio laufen lasse dann klappts, aber wenn ich alles aus habe bleibts leise :frowning:

Hast Du die komplette Library neu installiert?

GeTapatalked

Hi Flobo,

momentan kann nur für die Sounds (ringing, bell, …) die Lautstärke angepasst werden. Für die Sprachausgabe wird die aktuelle Lautstärke verwendet (hat so bei den Test bei mir gepasst, zumindest für Google-TTS). Schau mal bei Dir wie groß die Lautstärlke im Zustand „Alles aus“ ist.

Spontan würde aber auch ein zusätzlicher Parameter „Text_Volume_Offset“ Sinn machen.

Gruß

Jörg

@wgreipl … Ne nur in der Sonos Bibliothek den Eintrag gemacht.
@joki … Wäre super die sonos laufen bei mir ja nicht immer mit Musik … Evtl wäre ja ne default Lautstärke drin

@Flobo: magst Du mir noch verraten wo Du die Eintragung gemacht hast?

GeTapatalked

Nur zur Verdeutlichung: Die Meldung wird auch ausgeben, wenn gerade keine Musik/Radio läuft. Für die Sprache wird dann die gerade aktive Lautstärke verwendet.

Oh Mann, was nur ein einzelner Buchstabe verursachen kann :confused:

In den API-Aufrufen aus der WIKI fehlte beim Include ein s beim module[b]s.

[/b]Habe es gerade ergänzt und in der WIKI geändert. Schon klappt es auch mit

IPSUtils_Include ('IPSSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');

Hallo,

eventuell hab ich überlesen … im Wiki steht …

„Alternativ kann auch der TTS-Dienst von IP-Symcon verwendet werden.“

Wo kann ich das denn einstellen?

Danke und Grüße,
MaLu

OK, OK, wer lesen kann ist im Vorteil … habe es :slight_smile:

…peinlich…hab die 1000 Variablen Grenze erreicht und deswegen konnte ich nicht mehr Boxen einbinden :rolleyes:

Trotzdem hätte ich noch eine Frage > kann ich ein Soundfile auf allen Boxen gleichzeitig abspielen lassen? Ich bekomme es nur hin, dass alle Boxen nacheinander die Meldung ausgeben, das ist aber bei einer Benachrichtigung von z.B. der Waschmaschine eher unschön…

Ich hatte mir das so gespeichert…aber funktioniert nicht…

$params =  array (
  "Rooms"		=>  'Flur, Schlafzimmer',	  // List of rooms to play the messages     =>  'Bad oben, Schlafzimmer',
  "Volume_Ramp"     	=>  'fast',        		  // Type of volume ramp-up/down: slow, fast
  "Sound"         	=>  'zzz_Waeschetrockner-fertig.mp3',    // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '2',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '500',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '30',   			  // Adjust volume (for sound files only)
);
IPSSonos_PlayMessage($params);

Fehler ist:

Notice:  Trying to get property of non-object in C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos_Server.class.php on line 806

Warning:  fsockopen(): unable to connect to :1400 (Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.
) in C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php on line 2296

Danke und Gruß,
Chris

Tja, dann musst Du wohl mal aufräumen :wink:

Kleiner Tip (falls nicht bekannt): Mit dem Paramter IPSSONOS_VAR_PLAYERDETAILS wird die Anzahl an IPS-Variablen gesteuert, die innerhalb IPSSonos verwendet werden. Eingestellt auf „Low“ werden momentan 8 Variablen pro Raum weniger angelegt. Die durch den Parameter „High“ engelegten Variablen sind eher kosmetischer Natur und können z.B. bei der Erstellung eines eigenen Front-Ends verwendet werden.

Args, hab es hinbekommen mit mehreren Räumen gleichzeitg… Kaum lässt man das doofe Leerzeichen weg :smiley:

IPSUtils_Include ('IPSSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');


$params =  array (
  "Rooms"		=>  'Schlafzimmer,Flur',	  // List of rooms to play the messages     =>  'Bad oben, Schlafzimmer',
  "Volume_Ramp"     	=>  'fast',        		  // Type of volume ramp-up/down: slow, fast
  "Sound"         	=>  'zzz_Waeschetrockner-fertig.mp3',    // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '2',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '500',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '30',   			  // Adjust volume (for sound files only)
);
IPSSonos_PlayMessage($params);

So funktioniert es :slight_smile:

@joki: Das mit dem LOW/HIGH hatte ich gesehen, aber ich wollte nicht auf die Variablen verzichten…hab anderweitig etwas aufgeräumt und jetzt ist wieder etwas Platz :slight_smile: Zur Not muss ich halt doch auf die Unlimited gehen. Aber bin fast fertig mit der ganzen Umsetzung, also sollten die Variablen ausreichen.

Danke!

-Chris-

Doch noch eine Frage :smiley:

Kann ich irgendwas machen, damit nach dem Abspielen einer Sounddatei nicht mehrere Sekunden Pause ist, bevor die nächste Sounddatei abgespielt oder z.B. das Internetradio weiter abgespielt wird? Das sind bestimmt 10 Sekunden…manchmal auch mehr! :frowning:

$params =  array (
  "Rooms"		=>  'Schlafzimmer,Flur,Bad oben,Wohnzimmer',	  // List of rooms to play the messages     =>  'Bad oben, Schlafzimmer',
  "Volume_Ramp"     	=>  'fast',        		  // Type of volume ramp-up/down: slow, fast
  "Sound"         	=>  'zzz_doorbell1.mp3',    // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '1',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '100',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '30',   			  // Adjust volume (for sound files only)
);
IPSSonos_PlayMessage($params);

// HIER DAZWISCHEN WAREN EBEN ZWISCHEN 10 und 15 SEKUNDEN PAUSE!!!

$params =  array (
  "Rooms"		=>  'Schlafzimmer,Flur,Bad oben,Wohnzimmer',	  // List of rooms to play the messages     =>  'Bad oben, Schlafzimmer',
  "Volume_Ramp"     	=>  'fast',        		  // Type of volume ramp-up/down: slow, fast
  "Sound"         	=>  'zzz_Waeschetrockner-fertig.mp3',    // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '1',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '100',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '30',   			  // Adjust volume (for sound files only)
);
IPSSonos_PlayMessage($params);

Grüße,
Chris

Hallo Zusammen,

eine Optimierung bei der Meldungsausgabe ist mit Version 1.1.1 verfügbar. Damit sollten die Pausen kürzer sein.

Viele Grüße

Jörg

Abend :slight_smile:

Wie bereits berichtet -> bei mir haben sich die Pausen zwischen den Meldungen auf rund eine Sekunde verkürzt und auch nach den Meldungen/Sounddateien ist die Wartezeit vorbei, also läuft das Skript nicht mehr noch mehrere Sekunden unnötig nach.

Ich konnte heute schon erfolgreich die Waschmaschine, Klingel und andere Meldungen in allen und einzelnen Räumen erfolgreich im Live-Betrieb für gut befinden :smiley:

TOP! Vielen Dank für deine Arbeit!

Grüße,
Chris

Hallo zusammen,

bei der IPSSonos_PlayMessage($params) Funktion kann ja die Lautstärke über das $params Array eingestellt werden.

Kann mir jemand sagen wie ich bei den „Simple Ausgaben“ (z.B. IPSSonos_PlayTTSByRoomSimple)
die Lautstärke der Meldungen ändern kann?

Hallo prodo!

Du kannst bei PlayMessage in den $params nur den Offset einstellen, also die Differenz zur aktuellen Lautstärke (z.B. etwas lauter oder leiser)…

Ich mache das mit der Lautstärke für alle Meldungen so:

<?
IPSUtils_Include ('IPSSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');
IPSUtils_Include ('PHPSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');

$sonosIP = "192.168.1.51"   //Sonos ZP IPAdresse


//alte Lautstärke merken
$SonosVolume = 50;
$volume1 = GetValue(43634 /*[Program\IPSLibrary\data\modules\IPSSonos\Wohnzimmer\VOLUME]*/);  // Volume Variable deines Sonos-Lautsprechers (wenn du mehrere machen willst, dann einfach erweitern um Volume2, Volume3, ...  -- auch am Ende des Skripts beim wiederherstellen der gespeicherten Lautstärke)


//temporäre Lautstärke setzen
$sonos = new PHPSonos($sonosIP); //Sonos ZP IPAdresse
$sonos->SetVolume($SonosVolume); //0-100 in %


/Meldung abspielen in temporärer Lautstärke
$params =  array (
  "Rooms"		=>  'Flur',	  // List of rooms to play the messages
  "Volume_Ramp"     	=>  'fast',        		  // Type of volume ramp-up/down: slow, fast
  "Text"                =>  'Ich bin die Nachricht und werde vorgelesen'  // Message
  "Type"          	=>  'TTS_Simple',      		  // Type of engine: TTS_Simple (Google), TTS (IPS instance)
  "TTS_Simple_Language" =>  'de',          		  // For TTS_Simple only, possible entries: de, fr, en, en-gb, ... also check google translate service for more languages
  //"Sound"         	=>  'zzz_doorbell1.mp3',    // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '1',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '500',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '0',   			  // Adjust volume (for sound files only)
);

IPSSonos_PlayMessage($params);


//alte Lautstärke wieder setzen
$sonos = new PHPSonos($sonosIP); 
$sonos->SetVolume($volume1); //0-100 in %

?>

Edit: +1 für Einbindung der TTS-Lautstärken-Regelung in IPSSonos :slight_smile:

Grüße,
Chris

Momentan kann lediglich die Lautstärke für die Sounds (Klingeltöne) angepasst werden, für die Sprachausgabe wird die gerade aktuelle Lautstärke verwendet.

Kann ich aber gerne noch erweitern, ist nicht aufwendig und scheint mir sinnvoll.

Gruß

Jörg

Hallo Joki,

das wäre super.
Bei uns läuft die Musik meistens dezent im Hintergrund und dadurch hört man nur ein leises flüstern bei einer Durchsage.

@Bayaro
Wenn ich die Meldung nur an einem Player ausgebe ist das mit dem SetVolume($SonosVolume) ganz ok, aber wenn ich das für ein ganzes Sonos Rudel mit PlayTTSAllRoomsSimple mache, dann wird es schnell sehr unübersichtlich. Trotzdem danke für die Info.

Moin prodo,

warum unübersichtlich bei mehreren? Man könnte das auch einfach in eine Funktion in ein externes Skript auslagern. Dann bräuchte man z.B. nur vor und nach einer Meldung schreiben „Sonos_SaveOldVolumeAll“ „Sonos_SetVolumeSprachmeldungAll“ und „Sonos_SetOldVolumeAll“.
Nur als Beispiel :slight_smile:

Oder halt direkt im Skript einzeln:

<?
IPSUtils_Include ('IPSSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');
IPSUtils_Include ('PHPSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');

//alte Lautstärke merken
$SonosVolume = 50;
$volume1 = GetValue(43634 /*[Program\IPSLibrary\data\modules\IPSSonos\Wohnzimmer\VOLUME]*/);
$volume2 = GetValue(16532 /*[Program\IPSLibrary\data\modules\IPSSonos\Schlafzimmer\VOLUME]*/);
$volume3 = GetValue(16718 /*[Program\IPSLibrary\data\modules\IPSSonos\Bad oben\VOLUME]*/);
$volume4 = GetValue(56385 /*[Program\IPSLibrary\data\modules\IPSSonos\Flur\VOLUME]*/);

//temporäre Lautstärke setzen
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($SonosVolume); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($SonosVolume); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($SonosVolume); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($SonosVolume); //0-100 in %

//Meldung abspielen in temporärer Lautstärke
$params =  array (
  "Rooms"				=>  'Schlafzimmer,Flur,Bad oben,Wohnzimmer',	  // List of rooms to play the messages   	
  "Volume_Ramp"     =>  'fast',        		  // Type of volume ramp-up/down: slow, fast
	"Sound"         	=>  'test.mp3',    // Additional sound to play; *.wav/*.mp3 files 
	"Sound_Repeat"   	=>  '1',   			  // Play the sound for # times
	"Sound_Delay"   	=>  '100',   			  // Delay in miliseconds; adds a pause after playing a sound
	"Sound_Volume_Offset" =>  '0',   			  // Adjust volume (for sound files only)
);
IPSSonos_PlayMessage($params);

//alte Lautstärke wieder setzen
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($volume2); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($volume3); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($volume4); //0-100 in %
$sonos = new PHPSonos("192.168.*.*"); //Sonos ZP IPAdresse
$sonos->SetVolume($volume1); //0-100 in %

?>

Aber natürlich hast du Recht, wenn joki das direkt in sein IPSSonos einbaut, dann würde ich das auch klar bevorzugen :slight_smile:

Grüße,
Chris

Ist eingebaut, der Paramter lautet Text_Volume_Offset.


$params =  array (
         "Rooms"				                   =>  'Schlafzimmer',              		// List of rooms to play the messages
         "Volume_Ramp"     		        =>  'slow',        							// Type of volume ramp-up/down: slow, fast

         "Text"                                          =>  'Dies ist ein schöner Test',   		// Message
         "Type"          			                   =>  'TTS_Simple',      						// Type of engine: TTS_Simple (Google), TTS (IPS instance)
         "TTS_Simple_Language"      =>  'de',          							// For TTS_Simple only, possible entries: de, fr, en, en-gb, ... also check google translate service for more languages
	      "Text_Volume_Offset"         =>  '20',   									// Adjust volume (for text only)
);

Gruß

Jörg