Anbindung Verstärker an iPS

kann ich so nicht unterschreiben…bei mir kommen Echoausgaben immer im Meldungsfenster an

Da hast du recht, allerdings nur wenn das Script manuell gestartet wird. In unserem Fall wird es aber durch die Register Variale aufgerufen und da erscheint bei mir dann nix in der Ausgabeansicht.

Das ist bei mir das „Problem“. Daher nehme ich immer IPS_LogMessage.
Weil echo in solchen Fällen gar nicht geht.
Wenn ich Zeit finde schau ich mir das mal an.

cu…

Hallo zusammen,

bisher war ich „sehr“ Erfolgreich. Ich kann nun via iP-S meinen Verstärker Ein/-Ausschalten sowie die Quelle (CD / Video / Aux …) schalten.
Vielen Dank für eure super Unterstützung.

Anbei mal mein Skript aus der Register Variablen. =>Für den den es interessiert und oder für anregungen wie man es besser machen kann.

<?
RegVar_SetBuffer($_IPS[‚INSTANCE‘], ‚‘); //Puffer leeren
$Befehle = GetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/);
$Gesendet = GetValueString(23509 /[Merker\Verstärker\Befehle]/);

// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS[‚SENDER‘] == „RegisterVariable“)
{
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
// neu empfangene Daten an $data anhängen
$data .= $_IPS[‚VALUE‘];

// wenn $data mindestens 16 Zeichen lang ist
if (strlen($data) &gt;= 2)
{
    // $data in Blöcke von bis zu 16 Zeichen zerlegen
    $datasets = str_split($data, 20);
    // $data leeren
    $data = "";

    // alle Datensätze durcharbeiten
    for ($i = 0; $i &lt; count($datasets); $i++)
    {
        // vollständige Datensätze (genau 16 Zeichen lang) ausgeben
        if (strlen($datasets[$i]) == 20)
        {
            echo "empfangener Datensatz: ".$datasets[$i]."

";
}
else
{
// Unvollständige Datensätze in $data schreiben
$data = $datasets[$i];
}
}
}

// Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
RegVar_SetBuffer($_IPS['INSTANCE'], $data);

echo "Hier gehts los ";
echo $data;
echo " xx ";
echo $Gesendet;
echo " xxx ";
// #echo $_IPS;

if (($Befehle == true) && ($data == $Gesendet)) // Wenn von IPS aus gesendet wurde und Antwort OK ist
{
SetValueBoolean(31648 /[Merker\Verstärker\Kopplung]/, true);
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,false);
echo „Verstärker Kopplung OK“;
}
elseif (($Befehle == true) && ($data != $Gesendet)) //Wenn von IPS aus gesendet wurde und Antwort NOK ist
{
SetValueBoolean(31648 /[Merker\Verstärker\Kopplung]/, false);
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,false);
echo „Verstärker Kopplung Fehler“;
}

if ($data == „Main.Power=On“ )
{
SetValueBoolean(17247 /[Merker\Verstärker\Ein/Aus]/, true);
SetValueBoolean(22052 /[Stereoanlage\Verstärker]/, true);
echo " ";
echo „Verstärker ein“;
}
elseif ($data == „Main.Power=Off“)
{
SetValueBoolean(17247 /[Merker\Verstärker\Ein/Aus]/, false);
SetValueBoolean(22052 /[Stereoanlage\Verstärker]/, false);
SetValueInteger(37795 /[Merker\Verstärker\Inputs]/, 0);
SetValueInteger(47634 /[Stereoanlage\Eingänge]/, 0);
echo " ";
echo „Verstärker aus“;
}

elseif ($data == "Main.Source=Aux")
   {
   SetValueInteger(37795 /*[Merker\Verstärker\Inputs]*/, 3);
   SetValueInteger(47634 /*[Stereoanlage\Eingänge]*/, 3);
	SetValueBoolean(22052 /*[Stereoanlage\Verstärker]*/, true);
	SetValueBoolean(17247 /*[Merker\Verstärker\Ein/Aus]*/, true);
   echo " ";
	echo "Aux ein";
	}
	
elseif ($data == "Main.Source=CD")
   {
   SetValueInteger(37795 /*[Merker\Verstärker\Inputs]*/, 5);
   SetValueInteger(47634 /*[Stereoanlage\Eingänge]*/, 5);
	SetValueBoolean(22052 /*[Stereoanlage\Verstärker]*/, true);
	SetValueBoolean(17247 /*[Merker\Verstärker\Ein/Aus]*/, true);
   echo " ";
	echo "CD ein";
	}

elseif ($data == "Main.Source=Tape2")
	{
   SetValueInteger(37795 /*[Merker\Verstärker\Inputs]*/, 1);
   SetValueInteger(47634 /*[Stereoanlage\Eingänge]*/, 1);
	SetValueBoolean(22052 /*[Stereoanlage\Verstärker]*/, true);
	SetValueBoolean(17247 /*[Merker\Verstärker\Ein/Aus]*/, true);
   echo " ";
	echo "Tape2 ein";
	}

elseif ($data == "Main.Source=Tuner")
	{
   SetValueInteger(37795 /*[Merker\Verstärker\Inputs]*/, 2);
   SetValueInteger(47634 /*[Stereoanlage\Eingänge]*/, 2);
	SetValueBoolean(22052 /*[Stereoanlage\Verstärker]*/, true);
	SetValueBoolean(17247 /*[Merker\Verstärker\Ein/Aus]*/, true);
   echo " ";
	echo "Tuner ein";
	}
	
elseif ($data == "Main.Source=Video")
	{
   SetValueInteger(37795 /*[Merker\Verstärker\Inputs]*/, 4);
   SetValueInteger(47634 /*[Stereoanlage\Eingänge]*/, 4);
	SetValueBoolean(22052 /*[Stereoanlage\Verstärker]*/, true);
	SetValueBoolean(17247 /*[Merker\Verstärker\Ein/Aus]*/, true);
   echo " ";
	echo "Video ein";
	}

elseif ($data == „Main.Source=Disc“)
{
SetValueInteger(37795 /[Merker\Verstärker\Inputs]/, 6);
SetValueInteger(47634 /[Stereoanlage\Eingänge]/, 6);
SetValueBoolean(22052 /[Stereoanlage\Verstärker]/, true);
SetValueBoolean(17247 /[Merker\Verstärker\Ein/Aus]/, true);
echo " ";
echo „Disc ein“;
}
}
?>

EIN AUS Skript:

<?
$Bedienung = getValueBoolean(22052 /[Stereoanlage\Verstärker]/);
$Status = getValueBoolean(17247 /[Merker\Verstärker\Ein/Aus]/);

echo $Bedienung;
echo ‚x‘;
echo $Status;

if (($Status == False) && ($Bedienung == true))
{
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,true);
COMPort_SendText(53926 /[Serial Port COM 5]/, „Main.Power=on“.chr(13));
SetValueString(23509 /[Merker\Verstärker\Befehle]/, „Main.Power=On“);
IPS_Sleep(200);
COMPort_SendText(53926 /[Serial Port COM 5]/, „Main.Source?“.chr(13));
}
elseif (($Status == true) && ($Bedienung == false))
{
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,true);
COMPort_SendText(53926 /[Serial Port COM 5]/, „Main.Power=off“.chr(13));
SetValueString(23509 /[Merker\Verstärker\Befehle]/, „Main.Power=off“);
}

?>

Quellen-skript

<?

$Visu = GetValueInteger(47634 /[Stereoanlage\Eingänge]/);
$Status = GetValueInteger(37795 /[Merker\Verstärker\Inputs]/);
$Bedienung = getValueBoolean(22052 /[Stereoanlage\Verstärker]/);
$Verst_EIN = getValueBoolean(17247 /[Merker\Verstärker\Ein/Aus]/);

echo $Bedienung;
echo ‚x‘;
echo $Status;

if (($Status != $Visu) && ($Verst_EIN == true))
{
	if ($Visu == '1')
   {
   SetValueBoolean(37156 /*[Merker\Verstärker\senden_aktiv]*/,true);
   COMPort_SendText(53926 /*[Serial Port COM 5]*/, "Main.Source=Tape2".chr(13));
  SetValueString(23509 /*[Merker\Verstärker\Befehle]*/, "Main.Source=Tape2");
	}

elseif ($Visu == '2')
	{
   SetValueBoolean(37156 /*[Merker\Verstärker\senden_aktiv]*/,true);
   COMPort_SendText(53926 /*[Serial Port COM 5]*/, "Main.Source=Tuner".chr(13));
  SetValueString(23509 /*[Merker\Verstärker\Befehle]*/, "Main.Source=Tuner");
	}

elseif ($Visu == '3')
	{
   SetValueBoolean(37156 /*[Merker\Verstärker\senden_aktiv]*/,true);
   COMPort_SendText(53926 /*[Serial Port COM 5]*/, "Main.Source=Aux".chr(13));
  SetValueString(23509 /*[Merker\Verstärker\Befehle]*/, "Main.Source=Aux");
	}

elseif ($Visu == '4')
	{
   SetValueBoolean(37156 /*[Merker\Verstärker\senden_aktiv]*/,true);
   COMPort_SendText(53926 /*[Serial Port COM 5]*/, "Main.Source=Video".chr(13));
  SetValueString(23509 /*[Merker\Verstärker\Befehle]*/, "Main.Source=Video");
	}

elseif ($Visu == ‚5‘)
{
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,true);
COMPort_SendText(53926 /[Serial Port COM 5]/, „Main.Source=CD“.chr(13));
SetValueString(23509 /[Merker\Verstärker\Befehle]/, „Main.Source=CD“);
}

elseif ($Visu == ‚6‘)
{
SetValueBoolean(37156 /[Merker\Verstärker\senden_aktiv]/,true);
COMPort_SendText(53926 /[Serial Port COM 5]/, „Main.Source=Disc“.chr(13));
SetValueString(23509 /[Merker\Verstärker\Befehle]/, „Main.Source=Disc“);
}
}
elseif ($Verst_EIN == false)
{
SetValueInteger(37795 /[Merker\Verstärker\Inputs]/, 0);
SetValueInteger(47634 /[Stereoanlage\Eingänge]/, 0);
}
?>

Herzlichen Glückwunsch.

Wenn Du Funktionen postest packst Du Sie am besten in [‚PHP] [‘/PHP] tags.
So liest es sich leichter.

cu…