Gelöst: Kombiniertes Skript für Lampe an / aus

Guten Abend,

ich sehe aktuell den Baum vor lauter Bäumen nicht.
Ich möchte aus zwei Skripten nur noch ein Skript machen.

Skript 1: alle Lampen an

<?php

IPS_Sleep(100);
RequestAction(24954, 50);

IPS_Sleep(100);
RequestAction(20875, 50);

IPS_Sleep(100);
RequestAction(31890, 50);

IPS_Sleep(100);


?>

Skript 2 - alle Lampen aus

<?php

IPS_Sleep(100);
RequestAction(19794, false);

IPS_Sleep(100);
RequestAction(38208, false);

IPS_Sleep(100);
RequestAction(33576, false);

IPS_Sleep(100);
RequestAction(24962, false);

IPS_Sleep(100);
RequestAction(30571, false);

IPS_Sleep(100);

Bisher waren 2 Skripte kein Problem, da ich jetzt aber auf IPS-View umgestiegen bin würde ich es gerne in einem Skript kombinieren. Wie müsste ich das Coding umbauen?

Grüße
Simon

PS: ich weiß, dass IPS_Sleep nicht gern gesehen wird, geht aber bei den Gartenlampen nicht anders, da die verzögert reagieren und mit dem IPS_Sleep stabil reagieren.

1 „Gefällt mir“

Ich vermute, du möchtest die Leuchten über einen An-/Aus Button schalten?

Dann legst du eine Boolean Variable mit einem Aktionsskript an. Im Aktionskript reagierst du auf $_IPS[‚VALUE‘]

Also z.B.

if ($_IPS['VALUE'] === true){
// Lampen einschalten
...
} else {
// Lampen einschalten
}

genau - ich möchte einfach mehrere Lampen (verschiedene Gartenlampen) mit einer Taste steuern, damit ich nicht alle Lampen einzeln aktivieren muss.

Mit dem Skript komme ich leider noch nicht so ganz klar.
Ich habe jetzt die Boolean angelegt und ein passendes Profil hinterlegt.

Wie müsste das Skript nun konkret für die Lampen A, B, C, aussehen?

A = ID 24954
B = ID 20875
C = ID 31890

Leider habe ich quasi keine PHP-Kenntnisse und bekomme die Befehle nur über „Befehl einfüge“ hin :smiley:

Vor allem verwirrt mich, dass in deinem Beispiel 2x „//Lampen einschalten“ steht - müsste da nicht noch „Lampen ausschalten“ hinzukommen?
Die beiden alten Skripte werden dann deaktiviert und ich mache alles über das neu angelegte Skript?

Ich bräuchte bitte noch etwas Hilfe :wink:
Danke!

Genau. Im else -Zweig muss es natürlich „ausschalten“ heißen.

Kein Problem, dann machst du es einfach über einen Ablaufplan :slight_smile:

Bei drei Lampen brauchst du drei Ablaufpläne. Im Ablaufplan wählst du als Auslöser deine Boolean-Variable.

Unter Aktionen erfasst du sinngemäß:

wenn <deine Boolean Variable> = 'wahr' ist dann
  schalte Lampe A an
wenn <deine Boolean Variable> = 'falsch' ist dann
 schalte Lampe A aus

In den anderen beiden Ablaufplänen machst du das gleiche für Lampe B und C. Vielleicht fängst du erst einmal mit einer Lampe an.

genau

Guten Morgen,
irgendwie bin ich zu doof dazu. Irgendwie will der Ablaufplan nicht so wie ich es möchte, wenn ich bei der Boolean „Licht Gesamt“ auf „an“ schalte:

Boolean Licht gesamt:


Aktionsskript dient lediglich der Schaltung der Boolean und hat kein Coding hinterlegt:

Der Ablaufplan für LED 1, LED2, LED3 sieht wie folgt aus:


jetzt die Unterscheidung hier „an“:


und jetzt „aus“:


aber irgendwie werden die Lampen nicht geschaltet (also egal ob an oder aus)
Wo habe ich einen Logik/Denkfehler?

okay, das Problem saß vor dem Monitor :smiley:
ich habe die „Dann“-Bedingung korrekt eingepflegt und jetzt funktioniert der Ablaufplan wie gewünscht.

Ablaufplan sieht jetzt wie folgt aus:

Danke für eure Denkanstöße!

Wäre es mit dem Ablaufplan auch möglich, direkt auf die 2 vorhandenen Skripte zu verweisen in der Ausführung? Dann könnte ich mir die Pflege von 17 Ablaufplänen sparen und die bisherigen Skripte weiter nutzen (auch für IPS-View :wink: )

Du kannst in einem Ablaufplan auch Scripte aufrufen, meintest Du das?
image

Und Deine 17 Ablaufpläne kannst Du evtl. auch konsolidieren. Füge in einem Ablaufplan einfach mehrere Auslöser an und beziehe dich einfach auf ein Event:

image

Gruß,
Loerdy

Sorry, da habe ich zu kompliziert gedacht. Du kannst natürlich alle drei Lampen in einem Ablaufplan schalten :banghead: und brauchst nur einen Ablaufplan:

wenn <deine Boolean Variable> = 'wahr' ist dann
  schalte Lampe A an
  schalte Lampe B an
  schalte Lampe C an

wenn <deine Boolean Variable> = 'falsch' ist dann
 schalte Lampe A aus
 schalte Lampe B aus
 schalte Lampe C aus

vielen Dank nochmals für den Input.
Ich habe jetzt alle 17 Lampen in einen Ablaufplan gepackt - funktioniert jetzt wunderbar und lässt sich wunderbar in IPSView integrieren :slight_smile: