Sascha
3. Dezember 2010 um 20:21
1
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
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
Sascha
3. Dezember 2010 um 20:54
2
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
tommi
3. Dezember 2010 um 21:25
3
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
Sascha
3. Dezember 2010 um 21:33
4
ok super so hab ichs verstanden
Danke Tommi
Sascha
3. Dezember 2010 um 22:03
5
sorry…ich nochmal
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 !!!
Sascha
3. Dezember 2010 um 22:17
6
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
dfhome
3. Dezember 2010 um 22:59
7
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
RWN
4. Dezember 2010 um 07:22
8
oder so.
<?
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;
}
?>
Sascha
4. Dezember 2010 um 13:18
9
oh…das sieht aber mal schön aufgeräumt aus