Laut bedienungshandleitung s. 7
dein kipp schalter ersetzen durch einem puls-schalter und verbinden mit rot-rot leiter.
(Dann wird NUR lokal geschaltet = IPS bekommt diesem befehl NICHT)
oder uber ein anderer FS20 sender programmieren.
Vielleicht doch mal bedienungsanleitung durchlesen (erste 10 seiten - der rest brauchst du in bezirk zu IPS nicht)
aber ich habe das Teil von Conrad. Die Anleitung ist leider etwas schwammig. Da steht drin, dass man zwingend einen Taster benötigt, um das Teil in den Programmiermodus zu bekommen. Auf ne FS20 Komponente reagiert es im Auslieferzustand noch nicht.
Also am Schalter hängen 2 Drähte raus. Die muss du für die Dauer von 15 (mindestens) Sekunden kurzschliessen und schon ist dein Schalter im Programmiermodus und lauscht auf eine FS20 Adresse. Wenn du jetzt neben dem PC sitzt und da schon eine Instanz angelegt hast (auch Hauscode und Adresse eingegeben hast) muss du einfach über dessen Controlpanel mal einen ON oder OFF befehl schicken. Dann wird der Schalter den neuen Hauscode und neue Adresse aufnehmen und speichern.
Andere Variante wäre, wenn du eine FB bei hand hast. Dann muss du ein Tastenpaar(oder Taste) auf die Adresse einstellen, die du möchstest (muss nachher die gleiche sein wie in IPS) und dann hiermit den Code rüberschicken. Voraussetzung in natürlich wieder der Programmiermodus des Schalters (15 Sek. kurzschliessen der beiden Drähte).
habe jetzt meinen FS20 S4U programmiert und in IPS eine Instance erstellt.
Nun wollte ich diesen Schalter über eine Fernbedienung und einen FS20 S4A bridgen. Doch dies ist ja nur bei TX-Instancen möglich, der FS20 S4U wird aber als RX-Instance angelegt.
Kann ich nur über Script schalten oder wie bekomme ich Sender und Schalter verheiratet?
mit welchem Befehl schalte ich eigentlich den FS20 S4U
den „schaltest“ du nicht, den liest du aus ! Zuerst eine Instanz anlegen für den entsprechenden Kanal (im 2-Kanal Modus eben für die 2 Kanäle) und dann verknüpfst du das mit einer BOOL Variable. Die kannst du dann in deinen Scripts auf den jeweiligen Zustand abfragen !
ich möchte den FS20 S4U mit nem Piri und nem Taster schalten. Es handelt sich um eine Balkonleuchte, die ich bei Bedarf schalten möchte, aber auch durch den Piri geschaltet wird.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : BA_Beweg.ips.php
Trigger : BA_Beweg.Status
Interval :
*/
//File: BA_Beweg.ips.php
if($IPS_SENDER == "Variable") {
//Lampe Abends anschalten, wenn nicht bereits an
if(!GetValueBoolean("Ist_Tag") && !GetValueBoolean("BA_FS_Leuchte.Status")) {
IPS_RunScript("BA_FS_Leuchte_ON"); //Hier dein Lampe An Script oder Alternativ der SwitchMode Befehl
}
IPS_SetScriptTimer("BA_Beweg", 120); //Timeout 2 Minuten
} else {
//Lampe ausschalten, wenn an und wenn Taster auch auf AUS! (Sonst würde der Piri das Licht ausmachen, wenn man manuell das Licht angemacht hat, der PIRI Timer aber abgelaufen ist)
if(GetValueBoolean("BA_FS_Leuchte.Status") && !GetValueBoolean("WZ_TA_Taste1.Status")) {
IPS_RunScript("BA_FS_Leuchte_OFF"); //Dein Lampe OFF Script oder SwitchMode
}
//Keine Bewegung mehr im Zimmer (Nur damit die Variable stimmt...)
SetValueBoolean("BA_Beweg.Status", FALSE);
//Timer ausschalten, wenn abgelaufen
IPS_SetScriptTimer("BA_Beweg", 0);
}
?>
Wie muss ich das Script umschreiben, damit es funzt?
Hier hast du ein fertiges Skript. Ich habe es geschrieben damals und funktionniert seither bei mir im Haus für jede PIRI Anwendung
Erklärung:
1 FS20S4U (UP-Sender)
1 PIRI
1 FS20SU (Schalter)
Der FS20S4U muss auf jeden Fall auf 2 Kanal programmiert sein. Es muss TRUE und FALSE erkannt werden. Mit SWAP wird es nicht funktionnieren. Er muss ausserdem die gleiche Adresse/Hauscode haben wie der FS20SU.
Der PIRI muss eine andere Adresse haben.
Wenn der FS20S4U auf False steht, also „ausgeschaltet“ ist das Licht auch aus. Der PIRI ist auf Standby und schaltet bei Bewegung die Lampe für eine programmierte Dauer. Falls die Bewegung im Bereich des PIRI’s bestehen bleibt, wird nachgetriggert für die selbe Dauer.
Auf Wunsch kann man das Licht dann per FS20S4U ausschalten, doch der PIR bleibt aktiv.
Schaltet man jetzt das Licht per FS20S4U ein, dann werden die Trigger des PIRI ignoriert. Das Licht wird anbleiben, solange bis es wieder ausgeschaltet wird per FS20S4U.
Schöner kannst du es nicht haben, und das alles nur in einem kompakten Script.
*******************************
IP-SYMCON Event Scripting
*******************************
File : LEVEL_2_LIGHT.ips.php
Trigger :
Interval :
*/
$move = GetValueBoolean("LEVEL_2_PIRI_MOVE_DETECT");
$FS20S4U_PB = GetValueBoolean("LEVEL_2_S4U_PB_LIGHT");
$switch_duration = 40; // switchtime for Light
switch ($IPS_SENDER)
{
case "Variable" : if ($IPS_VARIABLE == "LEVEL_2_S4U_PB_LIGHT")
if ($FS20S4U_PB == False)
{
SetValueBoolean("LEVEL_2_PIRI_MOVE_DETECT", False);
IPS_SetScriptTimer("LEVEL_2_LIGHT", 0);
}
if ($IPS_VARIABLE == "LEVEL_2_PIRI_MOVE_DETECT")
if ($move == True)
if ($FS20S4U_PB == False)
{
FS20_SwitchDuration(21608, True, $switch_duration);
IPS_SetScriptTimer("LEVEL_2_LIGHT", $switch_duration);
}
break;
case "TimerEvent" : SetValueBoolean("LEVEL_2_PIRI_MOVE_DETECT", False);
if ($FS20S4U_PB == False) IPS_SetScriptTimer("LEVEL_2_LIGHT", 0);
break;
}
?>
Events:
OnUpdate: LEVEL_2_PIRI_MOVE
LEVEL_2_S4U_PB_LIGHT
Und dann müsste das tadellos funktionnieren.
Du sollst natürlich die Variablennamen anpassen wie du sie brauchst. Bei mir ist es das Script für die Beleuchtung im Flur des 2. Stockwerks
Danke Franz, dass ist genau das, was ich brauche. Werd´s mal auf meine Variablen umschreiben und schauen, wie es bei mir funktioniert.
Eine Frage hätte ich noch, ich möchte noch die Variable „Ist_Tag“ einbinden, will heissen, der Piri reagiert nur, wenn die Variable auf „false“ steht, also Nacht (Sonnenuntergang) ist. Da ich nicht der php-Profi bin, vielleicht hast Du ja einen Tip für die Anpassung Deines Scriptes für mich.
Bitte sehr, hier das script mit einer Zusatz-BOOL Variable. Bei FALSE funktionniert der PIRI (z.B. nach der Dämmerung am Abend) oder eben bei TRUE hat der PIRI keinen Einfluss und das Licht bleibt aus, es sei den, man schaltet über Taster (FS20S4U)
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : LEVEL_0_LIGHT.ips.php
Trigger :
Interval :
*/
$move = GetValueBoolean("LEVEL_0_PIRI_MOVE_DETECT");
$FS20S4U_PB = GetValueBoolean("LEVEL_0_S4U_PB_LIGHT");
$switch_duration = 60; // switchtime for Light
$day_status = GetValueBoolean("FLOOR_DAY_STATUS");
switch ($IPS_SENDER)
{
case "Variable" : if ($IPS_VARIABLE == "LEVEL_0_S4U_PB_LIGHT")
if ($FS20S4U_PB == False)
{
SetValueBoolean("LEVEL_0_PIRI_MOVE_DETECT", False);
IPS_SetScriptTimer("LEVEL_0_LIGHT", 0);
}
if ($IPS_VARIABLE == "LEVEL_0_PIRI_MOVE_DETECT")
if ($move == True)
if ($FS20S4U_PB == False)
if ($day_status == False)
{
FS20_SwitchDuration(57704, True, $switch_duration);
IPS_SetScriptTimer("LEVEL_0_LIGHT", $switch_duration);
}
break;
case "TimerEvent" : SetValueBoolean("LEVEL_0_PIRI_MOVE_DETECT", False);
if ($FS20S4U_PB == False) IPS_SetScriptTimer("LEVEL_0_LIGHT", 0);
break;
}
?>
die zusätzliche Variable hier ist der „day_status“
danke vielmals für das Script. Doch leider schaltet mein FS20 S4U nicht.
Der Piri löst den Timer aus, aber die Lampe schaltet nicht ein.
Wenn ich ein einzeiliges Script mit „FS20_SwitchDuration(12345, True, 120)“ ausführe, kommt die Meldung : „Warning: fs20_switchduration ( 12345 ) not found in C:\Programme…currentscript on line 10“
Manuell lässt sich der FS20 S4U über einen Schalter oder Fernbedienung schalten. Die Variable ändert sich auch. Wo liegt mein Fehler?
Also, um Missverständnisse aus dem Weg zu räumen, den FS20S4U schaltest du nicht. DAS ist der Sender ! Der Schalter ist der FS20SU!
Also, TASTER = FS20S4U und Lampe = FS20SU
Hast du alle Zeilen auf eventuelle PHP Fehler nachgekuckt? Ein „;“ das fehlt, kann schon Chaos verursachen. Hast du wirlkich überall die gleichen Hausadressen? Kannst du mit dem FS20S4U (also UP Taster) die Lampe schalten? Haben die den gleichen Code?
Die Instanz die bei Switchduration stehen muss, ist die der Lampe, also der FS20SU, und NICHT der Fs20S4U !!
das Missverständnis lag ganz auf meiner Seite. Wer lesen kann…
Ich habe einen FS20 SU gekauft, die Instance aber als FS20 S4U angelegt. Das kann ja auch nicht klappen. Ich hatte mich so darauf eingeschossen, dass ich einen FS20 S4U habe. Ein Blick auf die Packung schaffte Abhilfe.
Nun kann ich auch schalten
Eine kleine Frage zu Deinem Script habe ich noch: Tagsüber erkennt der Piri Bewegung und schaltet auch seine Variable. Die Leuchte geht, weil ist Tag, nicht an. Jedoch bleibt die „Piri-Variable“ auf true. Das ist doch nicht im Sinne des Erfinders, oder?
Was muss ich in das Script noch einbauen, damit tagsüber die Variable auf false zurückgesetzt wird?
Ja, wenn tagsüber der PIRI nicht benutzt wird, bleibt die Variabe auf TRUE. Das war mir bekannt, habe jedoch nie etwas unternommen, da es für mich nie relevant war. Aber da könnte man noch was mit einbauen dass die Variable immer wieder zurückgesetzt wird. Ich werde es mir mal anschauen !