IPSSonos

Hallo Tom,

sollte eigentlich funktioren, bei mir lief das über eine IRTrans-Fernbedienung stabil. Was ist denn für Dich eine „starke Verzögerung“? Die IPSSonos-Funktion selbst sollte im Bruchteil einer Sekunde durchgelaufen sein. Schau doch mal mit folgendem Skript, wie lange das bei Dir dauert:

IPSUtils_Include ('IPSSonos.inc.php', 'IPSLibrary::app::modules::IPSSonos');
$beginn = microtime(true);

$roomName     = 'Schlafzimmer';
IPSSonos_IncVolume($roomName, '1');
$dauer = microtime(true) - $beginn;
echo "Verarbeitung des Skripts: $dauer Sek.";

Gruß

Jörg

Hallo Jörg,

danke für Deine schnelle Hilfe!

Teilweise Sekunden und nach mehrmaliger Bedienung sogar mehrere Sekunden ehe eine Reaktion kommt. Zum KNX hin steht und läuft sonst eigentlich alles gut.

Dein Script sagt:
Verarbeitung des Skripts: 0.049999952316284 Sek.

LG
Tom

Hi Tom,

mhhh, die Laufzeit der IPSSonos-Funktion liegt eigentlich im Rahmen und sollte daher nicht die Ursache für die lange Reaktionszeit sein.

Da musst selbst mal suchen, wo die Zeit bei Dir draufgeht. Findet sich vielleicht im IPSLogger ein relevanter Eintrag? Ansonsten evt. mal die Timer-Funktion in Dein KNX-Skript einbauen und damit die Laufzeit analysieren.

Gruß

Jörg

Hallo Zusammen,

basierend auf Martins Vorlage gibt es jetzt eine Nachrichtenausgabe in IPSSonos.

Funktionsumfang:

  • Ausgabe von Sprachnachricht und/oder Tönen
  • TTS-Engine von IP-Symcon oder Google
  • Parameter zur Steuerung von Pausen, und Lautstärke

Details zur Konfiguration und Verwendung im Wiki:

Konfiguration
API-Funktionen

Bei der Entwicklung und dem Testen ist mir aufgefallen, dass die Sonos-Geräte unterschiedlich auf identische Aufrufe regieren (z.B. unterscheidet sich z.B. die Laufzeit um einige Sekunden). Bisher konnte ich jedoch keine Systematik erkennen. Von daher die Bitte an Euch, verwendet die Funktion und wenn Euch etwas auffällt, bitte Feedback an mich.

Viel Spass

Jörg

Huhu,

bin gerade am Testen … Config habe ich gemacht allerdings kommt bei mir folgende Meldung wenn ich das Script ausführe :frowning:

Fatal error:  Uncaught exception 'Exception' with message 'script C:\IP-Symcon\scripts/IPSLibrary/app/module/IPSSonos/IPSSonos.inc.php could NOT be found!' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php:38
Stack trace:
#0 C:\IP-Symcon\scripts\36230.ips.php(3): IPSUtils_Include('IPSSonos.inc.ph...', 'IPSLibrary::app...')
#1 {main}
  thrown in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php on line 38
Abort Processing during Fatal-Error: Uncaught exception 'Exception' with message 'script C:\IP-Symcon\scripts/IPSLibrary/app/module/IPSSonos/IPSSonos.inc.php could NOT be found!' in C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php:38
Stack trace:
#0 C:\IP-Symcon\scripts\36230.ips.php(3): IPSUtils_Include('IPSSonos.inc.ph...', 'IPSLibrary::app...')
#1 {main}
  thrown
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\core\IPSUtils\IPSUtils.inc.php on Line 38

Hi Flobo,

laut Fehlermeldung kann das IPSSonos Include nicht gefunden werden. Jetzt hoffe ich mal, dass da bei GIT nichts daneben ging (hab dort eine Development-Stream aufgemacht).

Kannst Du mal bitte in der IPS-Console schauen, dass unter IP-Symcon -> Program -> IPSLibrary->app->modules->IPSSonos die Datei IPSSonos.inc vorhanden ist.

Dann wäre auch das Log-File des Update/Installation von IPSSonos interessant (kannst Du im WebFrontend finden)

Gruß

Jörg

Hiho,

IPSSonos ist vorhanden im Baum, die Datei selbst im Scripts Ordner heißt IPSSonos.inc.php
Hier mal Screenies falls noch was brauchst sag bescheid.

Die Screenshots sind interessant, um 19:51 war Deine IPSSonos.inc noch da, um 19:59 dann nicht mehr. :confused:

Evt. dumme Frage: Hat bei Dir IPSonos vorher funktioniert? Und wenn ja, schick mir doch bitte mal das Log des Updates auf die 1.1

Hier die letzten Logs
logs.rar (7.2 KB)

Ahhh … sorry … bei mir funktioniert die Funktion nicht.

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

daher habe ich das über den Pfad eingebunden :

include('C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos.inc.php');

Wenn ich den Include so mache kommt dann diese Meldung :

Fatal error:  Uncaught exception 'Exception' with message 'Error sending command: HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 347
CONTENT-TYPE: text/xml; charset="utf-8"
EXT: 
Server: Linux UPnP/1.0 Sonos/27.2-80271 (ZPS1)
Connection: close

s:ClientUPnPError' in C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php:2308
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php(965): PHPSonos->sendPacket('POST /MediaRend...')
#1 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos_Server.class.php(856): PHPSonos->Play()
#2 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos_Server.class.php(579): IPSSonos_Server->PlayMessage(Array)
#3 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos.inc.php(378): IPSSonos_Server->SendData('SRV', NULL, 'MSGGEN', Array)
#4 C:\IP-Symcon\scripts\36230.ips.php(19): IPSSonos_PlayMessage(Array)
#5 {main}
  thrown in C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php on line 2308
Abort Processing during Fatal-Error: Uncaught exception 'Exception' with message 'Error sending command: HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 347
CONTENT-TYPE: text/xml; charset="utf-8"
EXT: 
Server: Linux UPnP/1.0 Sonos/27.2-80271 (ZPS1)
Connection: close

s:ClientUPnPError' in C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php:2308
Stack trace:
#0 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php(965): PHPSonos->sendPacket('POST /MediaRend...')
#1 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos_Server.class.php(856): PHPSonos->Play()
#2 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos_Server.class.php(579): IPSSonos_Server->PlayMessage(Array)
#3 C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos.inc.php(378): IPSSonos_Server->SendData('SRV', NULL, 'MSGGEN', Array)
#4 C:\IP-Symcon\scripts\36230.ips.php(19): IPSSonos_PlayMessage(Array)
#5 {main}
  thrown
   Error in Script C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\PHPSonos.inc.php on Line 2308

Mhhh, anscheinend passt bei Dir etwas mit IPSLibrary an sich nicht. Aber für den konkreten Fall scheint das mit Deinem Work-Around umgangen zu sein.

Laut trace geht es bei dem „Play“-Befehl daneben. Bei der Meldungsausgabe könnte es falschen Pfadangaben liegen, also dass der Sonos-Player die Datei nicht richtig findet. Von daher schau doch bitte nochmal in der IPSSonos_Configuration nach, dass dort alles stimmt.

Wie testest Du die Sprachausgabe? Mit IPSSonos_PlayTTSByRoomSimple?

Hiho,

hab jetzt ein wenig rumprobiert, Freigaben geändert etc. leider kein Erfolg :frowning:

	IPSUtils_Include ("IPSSonos_Constants.inc.php",      "IPSLibrary::app::modules::IPSSonos");
	
	function IPSSonos_GetServerConfiguration() {
		return array(
			IPSSONOS_VAR_IPADDR			=>	'192.168.0.26',					// Mandatory: 	IP Adresse eines Players (keine Bridge!), dass möglichst immer an ist. Steuert zentrale Funktionen wie z.B. Synchronisation der Playlists
			IPSSONOS_VAR_PLAYERDETAILS 	=> 'High',								// Optional:	[High/Low] Change to "High" if detailed information on the players are needed (creates variavles for i.e. song, interpret, album, ... ) 
			);
	}

	function IPSSonos_GetRoomConfiguration() {									// Mandatory:	Array with details on your Sonos installation
		return array(
			'Wohnzimmer'	=>	array(											//	Mandatory:	Name of room 
				IPSSONOS_VAR_IPADDR		=>	'192.168.0.26', 					//	Mandatory:	IP Address
				IPSSONOS_VAR_RINCON		=>	'RINCON_000E58CBFFA001400',			//	Mandatory:	RINCON ID of the player, can be found i.e. with the SONOS controller software.
				IPSSONOS_VAL_MAXVOL		=> 	'80')				
			);
	}
	
	function IPSSonos_GetMessageConfiguration() {
		return array(
			IPSSONOS_VAR_LPATH		=> 	'C:\\IPS-Config\\Sounds\\',				// Mandatory: Local folder to store wav and mp3 files
			IPSSONOS_VAR_SMBPATH	=> 	'//SMARTHOMESERVER/IPS-Config/Sounds/',		// Mandatory: SMB share of the local path specified above
			IPSSONOS_VAR_TTSID		=> 	'51074',								// Optional:  ID of TTS (Text To Speech) instance
			
		);
	}

( SMARTHOMESERVER, als auch IP getestet. Ordner neu angelegt Freigegeben … )

Aufrufen tu ich mit dem Script :

include('C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos.inc.php');

$params =  array (
  "Rooms"		=>  'Wohnzimmer',	  // 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',      		  // 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"         	=>  'chimes.mp3',   		  // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration
  "Sound_Repeat"   	=>  '3',   			  // Play the sound for # times
  "Sound_Delay"   	=>  '500',   			  // Delay in miliseconds; adds a pause after playing a sound
  "Sound_Volume_Offset" =>  '25',   			  // Adjust volume (for sound files only)
);

IPSSonos_PlayMessage($params);

Vielleicht mach auch ich nen totalen scharrn … werd morgen mal bei bedarf die ganze IPSLibrary neu Installieren.

Habe hier die selben Probleme.

Bis vor dem Update hatte noch alles funktioniert. Jetzt geht nur noch die Lautstärke.

Irgendwie ist da der Wurm drin. Denke aber nicht das es an der Library liegt.

Werde morgen mal weitersuchen.

GeTapatalked

Hallo ,
erst mal bei

  "Sound"             =>  'chimes.mp3',             // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration 

nur chimes eingeben

  "Sound"             =>  'chimes',             // Additional sound to play; *.wav/*.mp3 files must be available in the file folder specified in IPSSonos_Configuration 

Das es eine wav oder mp3 ist ind der Sonos_config schon definiert.

Hi,

sieht eigentlich alles ganz gut aus (bis auf das Inlcude-Problem).

Was mir gerade noch eingefallen ist: Du musst den SMB-Share auch mit der Sonos-(Controller)-Anwendung zur Sonos-Library hinzufügen. Zum Test schiebst Du am besten mal aus dem Windows-System-Ordner ein paar der *.wav Dateien nach „C:\IPS-Config\Sounds\“. Diese solltest Du dann über die Sonos-Anwendung abspielen können. Wenn das klappt, sollte es dann auch über ISPSonos klappen.

Weitere einfacher Test allgemein für IPSSonos:
Lass mal bei Dir ein Lied laufen und führe folgendes Skript aus:

 
include('C:\IP-Symcon\scripts\IPSLibrary\app\modules\IPSSonos\IPSSonos.inc.php');  
IPSSonos_Stop('Wohnzimmer')

Hi Uwe,

das hab ich im Vergleich zu der Test-Version noch geändert. Das 1:1-Mapping in der Config hat eigentlich keinen Mehrwehrt gebracht und daher hab ich das gelöscht. Jetzt kann man im API-Aufruf die Sound-Datei direkt angeben (mit Endung) und muss diese nicht erst in der Config plegen.

Gruß

Jörg

Ah ok.

iIch habe nicht mehr Aktualisiert, habe halt die Testversion am laufen.

Eher mein Fehler, hätte Dir die Änderung noch rechtzeitig sagen können :o

Vielen Dank nochmal für´s testen!

Kein Problem. Danke für deine tolle Arbeit.

Die Tests funktionierten bei mir auch noch aber seit dem Update geht nichts mehr im IPSSonos.

@Uwe. Willst Du mal ein Update auf die 1.1.0 machen?

GeTapatalked

Kein Problem, aber nicht mehr heute. Habe keine Lußt mehr auf Sress. :rolleyes: