Sonos Steuern mit Homematic Dimmaktor /2Fachtaster

Hallo,

ich bin neu hier und habe seid kurzem ein Smarthome:-)
Alle Komponenten sind von Homematic IP, aber ich habe schnell gemerkt das ich mit der ccu3 nicht so richtig warm werde.
Nun habe ich mir Symcon zu gelegt und muss schon sagen das ist ne völlig andere Welt die auch noch süchtig macht.
Das geht schon los das ich alles was ne IP hat (TV,Dreambox,Sonos etc problemlos integrieren und steuern konnte, dank diesem Forum hier, und der super Software bei der das Programmieren auch für keine specs super einfach gemacht ist.
Bei CCu3 mit Cuxd schon etwas umständlicher.

Da ich leider noch sehr wenig bis keine Programmier Kenntnisse habe , aber viele Ideen was ich wie steuern möchte wollte ich hier mal nachfragen ob sich jemand findet der vielleicht helfen kann und möchte.

zu Ausgangslage:
Badezimmer ;
1 Play 3 von sonos.
1 Dimmaktor Homematic IP mit 2 fach taster

folgendes Script wird ausgelöst über ein kurzen druck auf den Homematic Taster unten.
NDR2 radio geht an auf Lautstärke 10.
betätige ich nun wieder den taster , wir meine Playlist"Andy" angespielt.
Lautstärke über langen Tastendruck auch vorhanden bei anderem Script.
das funktioniert auch so weit.

was ich nun gerne möchte und da komm ich nicht weiter ist:
Während die Playlist „Andy“ läuft und ich den taster noch einmal kurz betätige das ich einen Titel weiters kippen kann.
Das bekomme ich irgendwie nicht gelöst.

Mein Ansatz war die integer Variable Title zusätzlich auszulesen und gegebene falls darauf hin den Next Befehl auszuführen.
Ich weiß nicht mal ob das überhaupt machbar ist.
Vielleicht erbarmt sich ja hier jemand.
schon mal vielen Dank im voraus .

gruß Andy

<?
$sonos = GetValueInteger(„23203“);
$title = GetValueString(„36341“)

if ($sonos == 3 or 2)
{

SNS_SetRadio(27754, „NDR2“);
SNS_Play(27754);
SNS_SetVolume(27754, 10);
}
if ($sonos ==1)
{
SNS_SetPlaylist(27754, „Andy“);
SNS_Play(27754);

}

?>

Title ist String, ich denke Du meinst Playlist oder?

Hier ist das „“ weg zu lassen, die ObjektID wird als Integer übergeben, Du kannst dazu auch einfach an der Stelle, an der Du die Objekt ID einfügen willst STRG+O drücken und dann die Instanz auswählen.


if($sonos == 3 || $sonos == 2)

oder


if($sonos == 3 or $sonos == 2)

Ansonsten must Du noch mal beschreiben wie das bei Dir aufgebaut ist, wann das Skript ausgelöst wird, bei welchen Bedingungen von einem Ereigniss.

erstmal Danke für die Antwort.

das script wird immer dann ausgelöst wenn der Homematic Aktor eine Variable Press Short in symcon aktualisiert.
Sprich ich tippe auf den taster an der Wand, Script startet.

bis jetzt frage ich die status string variable in sonos ab ob der Lautsprecher überhaupt läuft. Wert 3 oder 2= sonos aus bzw pause, also starte NDR 2.
tippe ich nochmal auf den Taster wird das selbe script wieder ausgeführt nur das dann die playlist abgespielt wird.weil über die status variable der wert 1 ausgegeben wird, sprich der Lautsprecher läuft bereits. also starte playlist.

nun würde ich gerne noch einbauen das bei nochmal tippen er einen Titel in der playlist weiter springt.

[QUOTE=Fonzo;387891]Title ist String, ich denke Du meinst Playlist oder?

Playlist aktualisiert sich bei mir komischer weise nie.

Nun dazu müstest Du prüfen ob eine Playlist läuft und der Status 1 ist.

Wie in der Erläuterung zum Modul steht „Lediglich direkt nach dem Drücken des Knopfes am WebFront wird die Variable für eine Sekunde auf den gewählten Wert gesetzt.“.
Das heisst, die Variable dient dem Schalten, aber Du kannst mit der Variable selber die laufende Playlist nicht abfragen, da der Wert dann wieder auf 0 gesetzt wird.

Daher müsstest Du Dir in dem Fall eine Hilfsvariable vom Typ Integer anlegen . Dieser Variable weisst Du ebenfalls das Variablenprofil Playlist.Sonos zu. Dann brauchst Du noch ein Skript das Dir den Wert aus Playlist ausliest und in die Hilfsvariable überträgt.


 $playlist = GetValue(IPS_GetObjectIDByIdent("Playlist", 23456)); // 23456 ist die Objekt ID der Sonos Instanz
 if($playlist != 0)
 {
SetValue(45678, $playlist); // 45678 ist die Objekt ID der Hilfsvariable
 }

Auf das Skript legst Du ein Ereigniss das bei Variablenänderung von Playlist ausgeführt wird. Jetzt solltest Du in der zweiten Variable den Wert stehen haben von der ausgewählten Playlist. Diese zweite Variable kannst Du nun für eine Bedingung abfragen.

Vielleicht schreibst Du mal im Sonos Thread ob es nicht eine Möglichkeit gibt das Modul zu erweitern das optional eine weitere Variable angelegt wird, die die laufende Playlist anzeigt und die wieder auf 0 gesetzt wird, sobald keine Playlist ausgewählt wird. Das erspart einem das Nutzten von einem Ereigniss, wenn das Modul das selber setzten würde.

Ansonsten wenn Du etwas vergleichen willst, kann GetValueFormatted manchmal hilfreich sein, um nicht den tatsächlichen Wert abzurufen, sondern statt dessen den Wert aus dem Variablenprofil.

Denn


if($state == "pause" || $state == "stop")

liest sich im nachhinein besser und man weis was dort geprüft wird, als wenn dort eine 2 oder 3 steht, dann muss man bei Bedarf im Variablenprofil nachschlagen was das eigentlich für ein Wert ist.

Danke ,
Das sind wertvolle Tipps. Ich probiere es mal aus und melde ob ich es hinbekommen habe .

Guten morgen ,

ich habe das jetzt probiert und leider festgestellt das sich die Variable Playlist vom sonos Modul selbst nicht aktualisiert.
er schreibt ja das sich die Aktualisieren soll ganz kurz wenn mann im Webfront auf den Playlist Button drückt.(Was aber auch nicht geht)
Die stationID bekommt einen Wert wenn radio läuft.
Könnte man diese nicht nutzen und für meinen Zweck missbrauchen mit dieser Methode?

vielen Dank im voraus:-)

hier ist mein script zum auslösen der sonos im bad.(hab getvalueformatted noch nicht angewendet, daher noch 1 und 2)
Die Variable Playlist und das Script habe ich so wie beschrieben erstellt .Ausgelöst bei Variablenänderung.
Das funktioniert auch soweit wenn ich die Variable Playlist manuell auf den Wert 1 stelle, wird die Hilfsvariable auch auf 1 gesetzt.
Aber Automatisch geht das leider nicht.

Hat jemand das mal beobachtet ob sich in dem Sonos Modul die Playlist Variable kurz ändert?soll ja laut Beschreibung so sein.