PHP Sonos (Klasse zum Ansteuern einzelner Player)

Hallo
Stelle mal auf die neuen Systemvariablen um .
$IPS_SENDER und $IPS_EVENT heissen jetzt anders.
https://www.symcon.de/service/dokumentation/konzepte/skripte/systemvariablen/#Variable

Danke !

funktioniert. Die Systemvariablen waren in der Doku etwas „versteckt“ .

Thomas

Super Beitrag, genau das hatte ich gesucht!
Gibt es auch eine Möglichkeit das Fehlerprotokoll auszulesen?

kann mir jemand sagen, was diese Meldung ist? Erhalte die seit kurzem.
sonos.PNG

Lies mal hier
https://www.symcon.de/forum/threads/27500-Sonos-Modul?p=390634#post390634
und hier
https://www.symcon.de/forum/threads/27500-Sonos-Modul?p=390714#post390714

Besten Dank für den Hinweis

Hallo zusammen.
Es scheint, dass mit IPS 5.1 die fgetss() Funktion nicht mehr unterstützt wird.
Kennt jemand einen Ersatz zu dieser Zeile 2460
while (!feof($fp)) {
$ret.= fgetss($fp,128); // filters xml answer

Danke für einen Tip, damit ich weiterhin Sonos hören kann.

Danny

Hey Danny,
ja das Problem hatte ich auch - folgender workaround funktioniert bei mir:

ersetze


while (!feof($fp)) {
$ret.= fgetss($fp,128); // filters xml answer

durch


while (!feof($fp)) {
$ret.= strip_tags_content(fgets($fp,128)); // filters xml answer

und füge ganz am Ende der Datei die Funktion strip_tags_content mit folgendem inhalt ein:


function strip_tags_content($text, $tags = '', $invert = FALSE) { 

  preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
  $tags = array_unique($tags[1]); 
    
  if(is_array($tags) AND count($tags) > 0) { 
    if($invert == FALSE) { 
      return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text); 
    } 
    else { 
      return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
    } 
  } 
  elseif($invert == FALSE) { 
    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
  } 
  return $text; 
} 

so läufts bei mir wieder.
Beste Grüße
hoep

Danke dafür …

Danke vielmals. Das hat wirklich geholfen.

Verschwindet bei euch der Volume Balken auch? Kommt kurz wieder wenn man die Lautstärke anpasst, aber dann wieder weg.

Danny

Bei mir funktioniert das so nicht. Z.B. Volume wird immer 0 ausgegeben. Grund ist, dass der string durch NULL Bytes zerhackt wird und das parsing der tags dann nicht geht. Bei mir funktioniert folgendes - while Schleife ersetzen durch:


		while (!feof($fp)) {
			//$buffer = fgetss($fp,128);
			$buffer = fgets($fp,128);						
			$buffer=preg_replace('/\\0/', "", $buffer); //null Bytes löschen
			$ret.= $buffer;		
		}
		$ret = strip_tags($ret); //tags entfernen		

@darx)
Danke, war mir nicht aufgefallen, da ich das Webfront nicht verwende.
Gruß
hoep

Danke auch dafür …

Super!
Das wars. Danke vielmals. Jetzt sind wieder alle Anzeigen perfekt.

Danny

Hallo.
Vielleicht hat mir ja jemand ein korrigiertes PHPsonos.inc?
Seit dem Fix sehe z.b. keine Radiotitel mehr, nur noch den Stream Namen.
Die Buttons für Mute und Loudness hüpfen auch immer auf ON, obwohl nie gedrückt.

Für eigene Radiosender ist dieses Modul für mich viel einfacher als das SONOS Modul, wo ich immer noch nicht herausgefunden habe, wie ich meine eigenen Stationen hinkriege (die vom Sonso Controller tauchen da nie auf).

Danke
Danny

Moin darx,

danke dafür! - das hat bei mir nun auch funktioniert :slight_smile: .

Grüße
Thomas