LCN Relais nach 2s aus

Hallo,

ich möchte gerne in der Visu ein LCN Relais ansteuern das nach 2s wieder ausschaltet.

Ich habe es bereits mit LCN_SwitchRelayTimer probiert.

LCN_SwitchRelaisTimer(56501,2)

oder mit

LCN_SwitchRelais(56501,„1“);
IPS_Sleep(2000);
LCN_SwitchRelais(56501,„0“);

Leider ohne Erfolg. Ist der Code falsch? Oder warum schaltet das Relais nach 2s nicht aus.

Danke für eure Hilfe.

Das sind nicht 2 Sekunden!
Doku sagt:

Der Zeitfaktor ist kein linearer Wert. 1 = 30ms und 255 = 240s

Quelle: LCN_SwitchRelayTimer

LCN_SwitchRelais gibt es nicht.
Der Befehl lautet: LCN_SwitchRelay

Außerdem erwartet er keinen String als Parameter ("0") sondern einen bool.
Also true oder false

Abschließende Frage:
Wie hast du das Script aktuell umgesetzt? Als Aktions-Skript der Variable?
Michael

Danke für die schnelle Antwort.

hier ein Bild von dem Ereignis und dem PHP-Code.

Ist das so richtig?

image

Hab es so auch probiert.

Hi,

wenn du
LCN_SwitchRelaisTimer(Instanz_Id, tx)
nutzen möchtest, dann steht tx = 49 für 1,98sek und tx = 50 für 2,04 Sekunden.

Das sollte auch gehen, wobei du bei der Instanz_ID gemäß deines Bilder die ID 47986 angeben müsstest.

Eine weitere Variante ist:
RequestAction(56501, true);
IPS_Sleep (2000); // Zeit in Millisekunden
RequestAction(56501, false);
Hier bei die die Instanz_Id der Status (56501).

Wobei du hier:


Als Auslöser den Status selbst nutzt, da ist mir nicht ganz klar was du erreichen möchtest.
Den hier wird jetzt jede Änderung von „Status“ ausgewertet.
Du könntest es so machen das nur bei True der Timer läuft dann nach 2 Sekunden wieder abschalten:

Code.:
IPS_Sleep (2000); // Zeit in Millisekunden
RequestAction(56501, false);

oder
LCN_SwitchRelaisTimer(47986, 49) ;

Gruß Jan Peter

@higo Genau das Frage ich mich auch.
Michael

Hallo,

danke für eure Hilfe. Aller Anfang ist schwer. :slight_smile:

Ich möchte nur von der Visu den Status aus ändern. Welchen Auslöser muss ich da verwenden?

https://community.symcon.de/uploads/default/original/3X/6/c/6ca68b4b8941d82b4df62c8e8124622af5eab0b7.jpeg

bzw. wie kann ich hier bei bestimmten Wert (true) einstellen?

Oh mann, :man_facepalming:

Danke für eure Hilfe, hat jetzt geklappt.

Habe es so gelöst.

image

Dann nutze kein Ereignis, sondern ein Aktionsskript.
Das kann du bei der Status Variable einfach hinzufügen und den Code hierdurch ersetzen:

<?PHP
LCN_SwitchRelaisTimer(IPS_GetParent($_IPS['VARIABLE']), 49) ;

Was ist der unterschied?
Bei deiner Lösung schaltest du direkt in der Visu das Relais ein, ein Ereignis löst dann aus und sendet den Timer Befehl (also nochmal ein + Zeit).
Passiert dabei ein Fehler merkst du es nicht, bekommst du keine Fehlermeldung im der Visu.

Bei gesetzten Aktionsskript wird die eigentliche Aktion der Instanz durch das Skript ersetzt.
Jetzt landen alle Bedienungen der Variable in diesem Skript und dieses führt den Befehl aus.
Passiert dabei ein Fehler, wird er dir in der Visu angezeigt.
Michael