Markisensteuerung

Hast du mal versucht das Script manuell auszuführen? Oben rechts findest du im Scripteditor einen Button mit der Aufschrift „Execute“. Dann siehst du schon mal ab nicht gesendet wird oder nur nicht erkannt, dass es zeit zum senden ist.

Gruß,

Toni

Hallo Franz,

das Scribt läuft einwandfrei durch, es ändert sich auch die Variable der FS20MS (war sie schon auf „0“ wird die aktuelle Zeit bei „updatet“ eingetragen.
Ist die Markise über IPS ausgefahren worden und die Variable in der FS20MS hat z.B. 100, dann fährt Sie auch durch dieses scribt ein. Das Problem liegt darin, daß ich die Markise direkt über einen Taster ausfahre und ggf. auch einfahre, aber das Einfahren zusätzlich ereignisabhänging (Regen, Dämmerung oder Wind) durch IPS auch haben will.
Das Problem liegt z.Zt. darin, daß IPS nicht mitbekommt wenn die Markise über einen Taster direkt gesteuert wird.
Hast Du eine Idee wie ich diese Sache in den Griff bekomme.

Gruß Klaus

Hör mal Tonic, keiner will jemand einem etwas ausreden. Ich sag einfach nur das es falsch ist, einem einen Tipp zu geben der ein Sicherheitsrisiko darstellt.
Es ist das gleiche leidige Thema wie das Öffnen der Haustür oder Garagentor per FS20. Jeder könnte den Code kopieren, ohne Probleme.
Zu behaupten, 2 Minuten wären eine auszureichende Zeitverzögerung für eine Markisensteuerung ist einfach nur falsch.

So, nun aber… gehn wir was trinken und hauen uns auf die Schulter…

Du hattest dein „Urscript“ gepostet und schon allerhang Verbesserungsvorschläge bekommen. Poste doch bitte nochmal das Script, so wie du es jetzt benutzt. Manchmal schleichen sich Kleinigkeiten ein, gerade wenn man mit dem Scripten erst anfängt.

Toni

Ja, das kannst du. Das mache ich überall so.
Du musst IPS nur den Taster mitlauschen lassen. Du musst eine Instanz für den Taster anlegen, und die mit einer Variable verknüpfen, die den Status des Tasters wiedergibt.

Aber Achtung:

Benutzt du nur einen Taster, d.h. die SWAP Funktion, dann muss du mit dem Data Kanal des Tasters in der Instanz spielen. Das kannst du hier nachlesen.
Ansonsten, wenn du ein Tastenpaar benutzt, stellt das kein Problem dar, da deine BOOL-Variable sauber zwischen True und False hin und her schalten wird.

mfG Franz

Damit hast du sicherlich Recht. Ich habe allerdings nie behauptet, dass die Zeit reicht, ich habe lediglich darauf aufmerksam gemacht, dass 2 Minuten besser ist als seine jetzige Lösung, nämlich garkeine. Desweiteren habe ich die Möglichkeit eingeräumt das dieses Projekt durchaus optimierbar ist.

Ich kann immer noch nicht ganz nachvollziehen warum meine Äußerung ein Problem darstellt, dennoch hab ich mich korrigiert, mich erklährt und mich dafür entschuldigt.

Das sehe ich genau so. Alle weiteren Offtopic Beiträge werde daher auch wirklich löschen.

Gruß,

Toni

Hallo,

hier mein Script:

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Markise_Einfahren_BeiRegen_Wind_Daemmerung.ips.php
Trigger  :  Regen_Wind_Dämmerung
Interval : 
*/
 //Hole Daemmerungsschalter_Kanal_1 Wert
$Daemmerungsschalter_Kanal_1=GetValueBoolean("Daemmerungsschalter_Kanal_1");


//Hole KS_300_Windgeschwindigkeit
$Wind=GetValueFloat("KS300_Windgeschwindigkeit");

//Hole KS_300_Es_regnet
$Regen=GetValueBoolean("KS300_Es_regnet");

//Markise einfahren
if ($Daemmerungsschalter_Kanal_1 || $Regen || $Wind >= 10)
{
   FS20_SetPosition(32514, 0);
}

?>

Gruß Klaus

FS20_SetPosition(32514, 0);

… habe ich etwas verpasst :confused:

MST

EDIT: … Ihr habt mich ganz wuschig gemacht … ich bin ganz „FS20 DriveDown“ :smiley:

Jetzt hab ich es: http://www.ipsymcon.de/wiki/index.php/FS20MS

Sollte es nicht so lauten:

//Markise einfahren
if ($Daemmerungsschalter_Kanal_1 == TRUE || $Regen== TRUE || $Wind >= 10)
{
   FS20_SetPosition(32514, 0);
}

Hast du auch mit FS20_SetPosition(32514, 100); versucht? Vielleicht nur der falsche Anschlag ??

Hallo Franz,

der Wert „0“ passt schon, 100 entspricht ganz ausgefahren.
Inzwischen habe ich meinen Fehler entdeckt, ich habe in „Scribt Events“ die Werte der auslösenden Ereignisse auf „onChange“ gestellt, es funktioniert aber nur wenn ich „onValue“ einstelle.
Weiß jemand warum das so ist, bzw. wann was wie eingestellt werden muß???

Gruß Klaus

Der Unterschied zischen onChange und on Value ist ganz simpel…

Ich denke ich will es mal am Beispiel eines Integer-Wertes erklähren um es deutlicher zu machen. Der Vorgang ist aber bei allen Variablentypen identisch.

OnChange triggert dein Script jedes mal wenn die Variable sich ändert. Also wenn sie von 1 auf 2 springt oder von 4 auf 5 oder von 7 auf 3. Jedes Mal wird dein Script gestartet.

OnValue trigert dein script wenn die Variable die eingestellte Value, also den eingestellten Wert, annimmt. Ist beispielsweise 4 eingestellt, so kan die Variable den Wert von 7 auf 2, von 3 auf 9 und von 12 auf 18 springen, dein Script wird erst ausgeführt wenn die Variable von irgendwas auf 4 springt. Und zwar nur dann.

Thats all…

Die If-Bedingung kannst du so lassen wie Torro es dir vorgeschlagen hat.

Toni

Hallo Toni,

danke für den Hinweis.

Gruß Klaus