Erstes Skript fast fertig

Hallo Leute,

ich möchte meine Sonos (hängen an schaltbaren Steckdosen, welche im Haus verteilt sind) nicht mehr wie bisher einzeln im Webfront schalten, sondern über einen einzigen Button. Folgendes steht bisher im Skript.

<?
$x = GetValue(10552 /[Erdgeschoss\Sonos]/);

LCN_SwitchRelay(17352 /[LCN\Relais 2 (0, 11)]/, $x);
LCN_SwitchRelay(23378 /[LCN\Relais 5 (0, 11)]/, $x);
//Fügen Sie hier Ihren Skriptquellcode ein

?>

Leider schaltet der Button nur aus, nicht bei erneutem drücken wieder an:mad:. Was fehlt da? Wäre super wenn ihr es mir für „Dummies“ erklären könntet.

Gruß

Cubus

Ersetzte $x durch $_IPS[„VALUE“]
Hier nachzulesen Abschnitt Sender: Webfront
Systemvariablen — IP-Symcon :: Automatisierungssoftware

Und damit sich deine Variable auch ändert, auch noch das mit rein:
SetValue( $_IPS[„VARIABLE“], $_IPS[„VALUE“]);
Michael

Moin!

Quasi so in der Art:

<?
if($_IPS['SENDER'] == "WebFront") {
	SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

	if ($_IPS['VALUE'] === true) {
		// Befehl zum Einschalten
	}
	else {
		// Befehl zum Ausschalten
	}
}
?>

Dieses Skript muss bei der ins WebFront verlinkten Variable als „Action-Skript“ (Eigene Aktion) eingetragen sein.

Der Teil mit „if $_IPS[‚VALUE‘]“ kann natürlich auch abgeändert werden auf Zahlen oder sonstwas :slight_smile:

Edit: Hier noch ein paar Beispiele:
IP-Symcon - Wie kann ich… 2.0

Grüße,
Chris

Hallo ihr beiden,

vielen Dank, dass ihr mir gleich so schnell Lösungsvorschläge schickt. Nun bin ich aber entweder wirklich zu dumm, oder denke einfach zu umständlich. Das was ich gepostet habe ist durch einen Helfer entstanden, d.h. die ganzen Befehle sind für mich (noch) nichts weiter als eine fremde Sprache. So stellt sich auch die Frage zu „Ersetzte $x durch $_IPS[„VALUE“]“ nach welchem der drei $x im Skript? Ich würde mal das erste nehmen, oder? und wenn das gemeint ist bis wohin muß ich etwas löschen? Die Ganze Zeile? Oder nur das $x bis zum =. Ich bin da auch vielleicht zu ängstlich aus Angst da was zu zerschießen.

Falls ich es richtig verstehe hat Bayaro das dann schon so umgebastelt, oder? Die rot geschriebenen Sachen müßte ich füllen, oder? Und der Befehl zum ausschalten? Kommt da zwischen die beiden grünen Klammern der bisherige Inhalt des Skripts.

Ihr seht Fragen über Fragen…:frowning: Ich hoffe ihr seid noch willens mir weiter zu helfen, denn ich will es echt verstehen und nicht vorgekaut bekommen.

LG

Cubus

Aiaiai :slight_smile:

Vorgekaut hab ich schon :smiley: Mache es normal nicht, aber da ich den Code in mein „wie kann ich 2.0“ aufgenommen habe, hat sich das so ergeben g

Wenn du mit dem Code jetzt nichts anfangen kannst, dann solltest du DRINGEND dir mal die grundlegenden Dinge anschauen von IPS und PHP! Sonst wirst du auf Dauer keinen Spaß haben und nicht weit kommen!

Es müssen natürlich alle $x ausgetauscht werden. Aber das kommt auch drauf an, was du an dein LCN schicken musst zum Schalten. Wenn du TRUE und FALSE zum Schalten schicken musst, dann wäre $_IPS[‚VALUE‘] richtig, weil da drin ja TRUE oder FALSE steht. Muss da etwas anderes stehen, dann musst du dich an die anderen Beispiele von mir halten.

Dein Code mit TRUE FALSE würde dann so aussehen:

<?
if($_IPS['SENDER'] == "WebFront") {
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

    if ($_IPS['VALUE'] === true) {
        LCN_SwitchRelay(17352 /*[LCN\Relais 2 (0, 11)]*/, true);
        LCN_SwitchRelay(23378 /*[LCN\Relais 5 (0, 11)]*/, true);
    }
    else {
        LCN_SwitchRelay(17352 /*[LCN\Relais 2 (0, 11)]*/, false);
        LCN_SwitchRelay(23378 /*[LCN\Relais 5 (0, 11)]*/, false);
    }
}
?>

Es würde aber auch so funktionieren:

<?
if($_IPS['SENDER'] == "WebFront") {
        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
        LCN_SwitchRelay(17352 /*[LCN\Relais 2 (0, 11)]*/, $_IPS['VALUE']);
        LCN_SwitchRelay(23378 /*[LCN\Relais 5 (0, 11)]*/, $_IPS['VALUE']);
}
?>

Habe keine Ahnung von LCN, wenn deine Befehle für AN/AUS anders sind, dann ÄNDERN! :slight_smile: Sieht für mich so aus, als würdest du jeweils 2 Relais/Geräte/… schalten mit einem An/Aus im WebFront!?

Also…bitte DRINGEND mit den Grundlagen beschäftigen! Man braucht für IPS kaum PHP, aber diesen kleinen Teil sollte man schon können!

Grüße,
Chris

Kommt wenn man es am Handy zusammen kopiert :slight_smile:

Zuerst, ist die 10552 /[Erdgeschoss\Sonos]/ eine eigene erstellte boolean Variable ?
Hast du das folgende Script unter ‚Eigene Aktion‘ bei dieser Variable hinterlegt ?

Dann sollte es so passen:


<?
LCN_SwitchRelay(17352 /*[LCN\Relais 2 (0, 11)]*/, $_IPS["VALUE"]);
LCN_SwitchRelay(23378 /*[LCN\Relais 5 (0, 11)]*/, $_IPS["VALUE"]);

SetValue($_IPS["VARIABLE"],$_IPS["VALUE"]);
?>

Kurze Erklärung:
Beim klicken auf Ein/Aus im Webfront wird dieses Script gestartet.
Die Variable $_IPS enthält dann:

$_IPS[„VALUE“] = den eben neu ausgewählten Wert
$_IPS[„VARIABLE“] = die VariableID welche wo der Wert ausgewählt wurde.

Die ersten beiden Befehle schalten un die LCN_Relais auf den Wert welcher im WebFront ausgewählt wurde.
Der Letzte führt eben Diese Variable nach und setzt somit dem Zustand auf den Wert welchen du zuvor ausgewählt hast.

Michael
PS: Och mensch… da der Chris mal schneller mit tippen und kopieren :wink:

Du hast es aber schöner erklärt :slight_smile: Das war mir dann doch zuviel des Guten :wink:

Grüße,
Chris

Super, vielen, vielen Dank!!

Nun ist etwas Licht im Dunkel und der Rest ist Grundlagen lernen wie Chris ja schon geschrien hat. Ihr habt mir aber schon mal ne gute Richtung vorgegeben.

LG
Cubus