Beispiel Internetradio und mp3 Wiedergabelisten per Handsender

OK habe ich erledigt. schau bitte nochmal über das Script ob noch Fehler drin sind.

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : bz_lautstaerke.ips.php
Trigger  : bz_wandsender_volume_intens
Interval :
*/
set_time_limit(1000);
include("C:/Programme/IP-Symcon/scripts/konstanten.ips.php");

//Fehlerbeseitigung
if($bz_wac_volume < 0) {SetValueInteger("bz_wac_volume", 0);}
if($bz_wac_volume > 255) {SetValueInteger("bz_wac_volume", 255);}
if($bz_mastervolume < 0) {SetValueInteger("bz_mastervolume", 0);}
if($bz_mastervolume > 66000) {SetValueInteger("bz_mastervolume", 66000);}

//----------------------------Lautstärke heben---------------------------------

if ($IPS_COMPONENT == "lauter")
{
//die Variable Triggert das Script
SetValueInteger("bz_wandsender_volume_intens", 17);//bz_wandsender_volume_intens
return;
}

if ($IPS_COMPONENT == "leiser")
{
//die Variable Triggert das Script
SetValueInteger("bz_wandsender_volume_intens", 0);
return;
}

if ($bz_wandsender_volume_intens== 17
or $bz_wandsender_volume_intens== 19
{

//Lautstärke = max.
if($bz_Mastervolume>=66000)
{
//
//SetValueInteger("bz_wac_volume", 5);        //wav_sk ??????????????????????????????????????????
//SetValueString("wav_titel", 'Hinweis'); //Hinweis;Meldung;Klingel;Abmelden;Aus
//IPS_RunScript("wav_ausgabe");
//Sleep(4);
//
return;
}

//Laustärke kleiner 600, ganz langsam anheben
if($bz_mastervolume<600)
{
$bz_mastervolume=$bz_mastervolume+60;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
return;
}

//Laustärke kleiner 6000, langsam anheben
if($bz_mastervolume<6000)
{
$bz_mastervolume=$bz_mastervolume+600;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
return;
}

//sonst ist Lautstärke zwischen 6000-66000, schneller anheben
$bz_mastervolume=$bz_mastervolume+6000;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
}

//----------------------------Lautstärke senken--------------------------------

else
{
//Lautstärke = min.
if($bz_mastervolume<=0)
{
return;
}

//Laustärke kleiner 600, ganz langsam senken
if($bz_mastervolume<=600)
{
$bz_mastervolume=$bz_mastervolume-60;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
return;
}

//Laustärke kleiner 6000, langsam senken
if($bz_mastervolume<=6000)
{
$bz_mastervolume=$bz_mastervolume-600;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
return;
}

//sonst ist Lautstärke zwischen 6000-66000, schneller senken
$sk1_mastervolume=$bz_mastervolume-6000;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl","",true,true);
}

?>

Die Variable die ich im Feld „Data“ bei der Taste 3+4 angebe ist die „bz_wansender_volume_intens“ oder ?

Auf Deine letzte Frage: Ja. :slight_smile:

Hast Du „$bz_masterzahl“ definiert ?
Sollte z.B. so aussehen:


$bz_masterzahl = 1; // ist die Devicezahl der SK von Windows

Kannst Du aber auch probieren, mit 0,1,2…

Sonst sieht das Script gut aus. Teste mal und sag mir was passiert.

Gruß Thomas

Im Konstanten Script oder im Lautstärken Script ?

Habe es einfach mal im Script geändert. Sieht so aus

$bz_mastervolume=$bz_mastervolume+600;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=2","",true,true);
return;

habe es mit 0,1 und 2 ausprobiert. Die Variable „bz_wandsender_volume_intens“ ändert sich von 0 auf 17 bzw 19 aber weder das Mastervolumen noch „bz_wac_volume“ ändertsich.

Wofür war nochmal das Script „volume_berechnen“ ?

Grüße Mirco

Script „volume_berechnen“ brauchen wir erstmal nicht, ist für den Designer.
Ok. Ich schaue mir Dein Script gleich nochmal an…
Übrigens in Deinen konstanten.ips.php legst Du alle Variablen ab Die Du auch in anderen Scripten verwenden willst, so sparst Du Dir das immer wieder neue definieren.

Thomas

Wo holst Du den Wert(globale Variable) „bz_wandsender_volume_intens“ aus IPS in Dein Script… das fehlt glaube ich (GetValueInteger).

Thomas

Also im lautstaerken Script ist GetValueInteger nicht enthalten. Bei Dir doch auch nicht oder?

Wo soll ich es einbauen ?

bz_wandsender_volume_intens = GetValueInteger("bz_wandsender_volume_intens"); 

in die Konstanten!

Thomas

Erledigt! Weder bz_wac_volume noch bz_mastervolume ändern sich. Nur der Integer Wert bz_wandsender_volume_intens

Sorry mußte auch heißen:


$bz_wandsender_volume_intens = GetValueInteger("bz_wandsender_volume_intens"); 

Das $ hatte gefehlt.

Und bitte poste nochmal das aktuelle Konstanten und Lautstärkescript.

Bringt IPS Fehler wenn du Konstanten oder Lautstärkescript per Execute startest?

MfG Thomas

konstanten

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : konstanten.ips.php
Trigger  : 
Interval : 
*/
//--------------------Variablen aus IP-SYMCON----------------------------------
//Badezimmer
$bz_wandsender_volume_intens = GetValueInteger("bz_wandsender_volume_intens");
$bz_verstaerker = GetValueBoolean("bz_verstaerker");
$bz_wandsender_modus = GetValueInteger("bz_wandsender_modus");
$bz_wac_volume = GetValueInteger("bz_wac_volume");
$bz_modus = GetValueInteger("bz_modus");
//---------------------------Steckdosen----------------------------------------
$bz_verstaerker = 10739;
//-----------------Soundkarteninstancen & Variablen für Musik------------------
// USB Soundkarte 1.OG / Dach
//$SK1 = 56641;
//$TTS_SK1 = 58112;
//$DXMedia_SK1 = 45845;
//Winamp - IP-SYMCON
//$SK1_WAC_Position = GetValueString ("SK1_WAC_Position");
//$SK1_WAC_Status = GetValueString ("SK1_WAC_Status");
//$SK1_WAC_Volume = GetValueInteger("SK1_WAC_Volume");
//Musik - IP-SYMCON
//$SK1_Radiosender = GetValueInteger("SK1_Radiosender");
//$SK1_Wiedergabeliste = GetValueInteger("SK1_Wiedergabeliste");

// interne Soundkarte
$sk1 = 45592;
$tts_sk1 = 38570;
$dxmedia_sk1 = 38978;
//Winamp - IP-SYMCON
$sk1_wac_position = GetValueString ("bz_wac_position");
$sk1_wac_status = GetValueString ("bz_wac_status");
$sk1_wac_volume = GetValueInteger("bz_wac_volume");
//Musik - IP-SYMCON
$radiosender = GetValueInteger("radiosender");
$wiedergabeliste = GetValueInteger("wiedergabeliste");
//-----------------------------Radiosender-------------------------------------
$radio[1] = "http://gffstream.ic.llnwd.net/stream/gffstream_stream_wdr_einslive_a";
$radioname[1] = "Radiosender Eins Live";

$radio[2] = "http://listen.bmradio.de";
$radioname[2] = "Radiosender Black Music";

//$radio[3] = "http://64.236.98.50:80/stream/1014";
//$radioname[3] = "Radiosender Top Hits Music";

//$radio[4] = "http://64.236.98.50:80/stream/1013";
//$radioname[4] = "Radiosender das beste der achtziger";

//$radio[5] = "http://209.247.146.99:8000";
//$radioname[5] = "Radiosender Oldies";

//$radio[6] = "http://64.236.98.50:80/stream/1002";
//$radioname[6] = "Radiosender Neues Jahrhundert";

//$radio[7] = "http://64.236.36.54:80/stream/1003";
//$radioname[7] = "Radiosender Ruhe";

//$radio[8] = "http://64.236.98.50:80/stream/1024";
//$radioname[8] = "Radiosender Eurodance";

//----------------------------Wiedergabelisten---------------------------------
$mp3[1] = "C:\Programme\IP-SYMCON\Playlist\2pac.m3u";
$mp3name[1] = "tupäk";

$mp3[2] = "C:\Programme\IP-SYMCON\Playlist\acdc.m3u";
$mp3name[2] = "aycdec";

//-----------------------------------------------------------------------------



?>

lautstäreke

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : bz_lautstaerke.ips.php
Trigger  : bz_wandsender_volume_intens
Interval :
*/
set_time_limit(1000);
include("C:/Programme/IP-Symcon/scripts/konstanten.ips.php");

//Fehlerbeseitigung
if($bz_wac_volume < 0) {SetValueInteger("bz_wac_volume", 0);}
if($bz_wac_volume > 255) {SetValueInteger("bz_wac_volume", 255);}
if($bz_mastervolume < 0) {SetValueInteger("bz_mastervolume", 0);}
if($bz_mastervolume > 66000) {SetValueInteger("bz_mastervolume", 66000);}

//----------------------------Lautstärke heben---------------------------------

if ($IPS_COMPONENT == "lauter")
{
//die Variable Triggert das Script
SetValueInteger("bz_wandsender_volume_intens", 17);
return;
}

if ($IPS_COMPONENT == "leiser")
{
//die Variable Triggert das Script
SetValueInteger("bz_wandsender_volume_intens", 0);
return;
}

if ($bz_wandsender_volume_intens== 17
or $bz_wandsender_volume_intens== 19
{

//Lautstärke = max.
if($bz_Mastervolume>=66000)
{
//
//SetValueInteger("wav_sk",);
//SetValueString("wav_titel", 'Hinweis'); //Hinweis;Meldung;Klingel;Abmelden;Aus
//IPS_RunScript("wav_ausgabe");
//Sleep(4);
//
return;
}

//Laustärke kleiner 600, ganz langsam anheben
if($bz_mastervolume<600)
{
$bz_mastervolume=$bz_mastervolume+60;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=2","",true,true);
return;
}

//Laustärke kleiner 6000, langsam anheben
if($bz_mastervolume<6000)
{
$bz_mastervolume=$bz_mastervolume+600;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=2","",true,true);
return;
}

//sonst ist Lautstärke zwischen 6000-66000, schneller anheben
$bz_mastervolume=$bz_mastervolume+6000;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=2","",true,true);
}

//----------------------------Lautstärke senken--------------------------------

else
{
//Lautstärke = min.
if($bz_mastervolume<=0)
{
return;
}

//Laustärke kleiner 600, ganz langsam senken
if($bz_mastervolume<=600)
{
$bz_mastervolume=$bz_mastervolume-60;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=0","",true,true);
return;
}

//Laustärke kleiner 6000, langsam senken
if($bz_mastervolume<=6000)
{
$bz_mastervolume=$bz_mastervolume-600;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=0","",true,true);
return;
}

//sonst ist Lautstärke zwischen 6000-66000, schneller senken
$sk1_mastervolume=$bz_mastervolume-6000;
SetValueInteger("bz_mastervolume", $bz_mastervolume);
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=0","",true,true);
}

?>

Im Lautstärken Script bringt er den Fehler "Parse error: parse error, unexpected ‚{‘ in C:\Programme\IP-SYMCON\scripts.currentscript on line 37
"

Na klar.
Bitte ändern:


if ($bz_wandsender_volume_intens== 17 
or $bz_wandsender_volume_intens== 19)
{ 

Klammer zu fehlte. Und jetzt…?

Und dann fällt mir auf:
1.
Bitte alle Variablen die Du im Script aus IPS holst auch immer in den Konstanten mit GetValue…() zurückholen, wie soll sonst Dein Programm wissen welcher Wert gerade in der Variablen steht.
Also auch für bz_mastervolume ergänzen.
2.
Fehler in:


//sonst ist Lautstärke zwischen 6000-66000, schneller senken 
$sk1_mastervolume=$bz_mastervolume-6000; 
SetValueInteger("bz_mastervolume", $bz_mastervolume); 
IPS_Execute("nircmd.exe setsysvolume $bz_mastervolume master $bz_masterzahl=0","",true,true); 

Da hast Du noch $sk1_mastervolume verwendet.

Bitte für $bz_masterzahl nur einen Wert nehmen:
so:


$bz_masterzahl=0;

am Anfang vom Lautstärkescript oder als globale Variable in IPS und holen per GetValue…, dann kannst Du die 0 auch einfache zum Testen durch eine andere Zahl ersetzen und mußt sie nicht in mehreren Zeilen ändern.

Thomas

Klammer zu und jetzt …

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 16

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 17

Notice: Undefined variable: IPS_COMPONENT in C:\Programme\IP-SYMCON\scripts.currentscript on line 21

Notice: Undefined variable: IPS_COMPONENT in C:\Programme\IP-SYMCON\scripts.currentscript on line 28

Notice: Undefined variable: bz_Mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 40

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 52

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 54

Notice: Undefined variable: bz_masterzahl in C:\Programme\IP-SYMCON\scripts.currentscript on line 56

Mirco, bitte mache es Dir nicht ganz so einfach. Du solltest schon meine Beiträge lesen und dann auch umsetzen. Notice bedeutet ja schonmal das keine Fehler mehr im Script sind, sondern das sind nur noch Hinweise.

Also bz_mastervolume als Variable anlegen und in die Konstanten rein.
Und was du mit bz_masterzahl machen sollst habe ich ja auch schon geschrieben.

Thomas

Thomas, ich mache es mir nicht einfach. Ich lese Deine Beiträge und setze diese auch um. Natürlich habe ich das Mastervolume alle mit 0 ergänzt und auch in die Konstante mit GetValueInteger geschrieben. Die Variable ist bereits seid Tagen angelegt.

Grüße Mirco

Also entweder bin ich Blind, oder ich finde bz_mastervolume nicht in Deinem Konstantenscript. :confused:

Thomas

//die Variable Triggert das Script
SetValueInteger("bz_wandsender_volume_intens", 0);
return;
}

if ($bz_wandsender_volume_intens== 17
or $bz_wandsender_volume_intens== 19)
{

//Lautstärke = max.

Wenn ich die Klammer setze wie du es sagst, bekomme ich folge Meldungen

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 16

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 17

Notice: Undefined variable: IPS_COMPONENT in C:\Programme\IP-SYMCON\scripts.currentscript on line 21

Notice: Undefined variable: IPS_COMPONENT in C:\Programme\IP-SYMCON\scripts.currentscript on line 28

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 40

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 52

Notice: Undefined variable: bz_mastervolume in C:\Programme\IP-SYMCON\scripts.currentscript on line 54

bz_mastervolume ist wie gesagt als Integer bereits seid Tagen angelegt.
Grüße Mirco