Die peinlichste Frage seit ich hier bin :(

Hallo Gemeinde,

ich war jetzt auf verschiedenen PHP erklärungsseiten und habe die „Suche“ hier auf links gezogen…
anscheinend bekomme ich es noch nicht mal gebacken, die richtigen suchbegriffe einzugeben :frowning:

Ich möchte mir ein script schreiben (und jetzt wirds richtig peinlich)

was etwas ausschaltet, und einschaltet, abhängig vom WF Schalter (Variable,Boolean)

gehts noch peinlicher…

mein vermurkster Anfang :

<?
if($IPS_SENDER == "WebFront") // wenn Sender ist Webfornt
{
   SetValue($IPS_VARIABLE, $IPS_VALUE); // Variable in Webfront umschalten

	if($IPS_VALUE)
 	{ // wenn TRUE
  		IRT_SendOnce (19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","on/off toggle");
 	}
}
?>

der kommentar „//wenn TRUE“ verstehe ich nicht ? Woher weiß das script wann TRUE ist ?

Ich will damit meine Verstärker über IRtrans ein, und aber auch wieder ausschalten…

tut mir echt leid, euch mit so einer nichtigkeit zu nerven …
Ein Freund aus meinem Bekanntenkreis will mir demnächst etwas helfen mit dem start in PHP…hoffe die anzahl meiner fragen sinkt dann etwas…

Vielen Dank für Eure Hilfe

LG
Sascha

ok…bin mir nicht sicher, wie elegant das jetzt ist, aber so läufts zumindestens mal…

<?
if($IPS_SENDER == "WebFront") // wenn Sender ist Webfornt
{
   SetValue($IPS_VARIABLE, $IPS_VALUE); // Variable in Webfront umschalten

	if(22791== true)

	 { // wenn TRUE
  		IRT_SendOnce (19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","on/off toggle");
 	}

   if(22791== false)

	 { // wenn FALSE
  		IRT_SendOnce (19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","on/off toggle");
 	}


}


?>

LG
Sascha

if(22791== true)

ist immer true. Wahrscheinlich meinst Du

if(GetValueBoolean(22791)== true)

Da aber in beiden Fällen nach Deinem Script das Gleiche geschaltet werden soll, kann man die Prüfung auch ganz weglassen.


<? 
if($IPS_SENDER == "WebFront") // wenn Sender ist Webfornt 
{ 
   SetValue($IPS_VARIABLE, $IPS_VALUE); // Variable in Webfront umschalten 
    IRT_SendOnce (19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","on/off toggle"); 

} 
?> 

Tommi

ok super :slight_smile: so hab ichs verstanden

Danke Tommi

sorry…ich nochmal :frowning:

das mit dem toggle klappt schon ganz gut, aber was mache ich denn hier gerade falsch ?

<?

$status = (GetValueInteger(44260 /*[Mein Haus\Multimedia\Geräte\Verstärker\AmpR\Eingänge]*/);

if ($IPS_SENDER == "WebFront")
{
    SetValue(44260 /*[Mein Haus\Multimedia\Geräte\Verstärker\AmpR\Eingänge]*/, $IPS_VALUE);
}

   if ($status) == 0)
	(
	IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","pc";
	)


   if ($status) == 1)
	(
	IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","topfield";
	)


?>

Vielen Dank für all die Hilfe !!!

ok…hab was, was läuft…hatte mich erinnert, das RNW mir die ersten tage mal was gebastelt hat…das konnte ich jetzt ummodeln…

<?
if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand gestartet werden.";
    return;
}
if ($IPS_SENDER == "WebFront")
{
    SetValue(44260 /*[Mein Haus\Multimedia\Geräte\Verstärker\AmpR\Eingänge]*/, $IPS_VALUE);
} else {
 echo "Dieses Skript kann nur vom WebFront aus gestartet werden!";
}

if ($IPS_VALUE == 0)
{
   IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","pc");

}

if ($IPS_VALUE == 1)
{
   IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","topfield");
}

if ($IPS_VALUE == 2)
{
   IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","ps3");
}

if ($IPS_VALUE == 3)
{
   IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","tuner");
}

if ($IPS_VALUE == 4)
{
   IRT_SendOnce(19869 /*[Mein Haus\Multimedia\IRTrans LAN]*/,"onkyo","frontaux");
}
?>

LG
Sascha

Ist eigentlich fast identisch mit dem von RWN, bis auf den Fehler bei der If-Abfrage:
Falsch:

if ($status) == 0) 

Richtig:

if ($status == 0) 

Da war ein Klammerfehler drin. Müsste dann aber auch unten im Ausgabe-Fenster angezeigt werden, dass in Zeile X der Fehler ist.

Gruß
dfhome

oder so. :slight_smile:

<?
if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand gestartet werden.";
    return;
}
if ($IPS_SENDER == "WebFront")
{
    SetValue($IPS_VARIABLE, $IPS_VALUE);
}

$irtID = 19869;

switch($IPS_VALUE)
{
    case 0:
    IRT_SendOnce($irtID, "onkyo", "pc");
    break;
    case 1:
    IRT_SendOnce($irtID, "onkyo", "topfield");
    break;
    case 2:
    IRT_SendOnce($irtID, "onkyo", "ps3");
    break;
    case 3:
    IRT_SendOnce($irtID, "onkyo", "tuner");
    break;
    case 4:
    IRT_SendOnce($irtID, "onkyo", "frontaux");
    break;
}
?>

oh…das sieht aber mal schön aufgeräumt aus :slight_smile: