das geht ja noch - aber wenn die Temperatur bei Aktivierung des Ereignisses höher ist als der eingestellte Grenzwert (zB > 25°C) wird das Ereignis nicht ausgelöst.
Kann ich das irgendwo einstellen, dass das Script trotzdem executiert wird auch wenn die Temperatur schon überschritten ist?
Oder muss ich diesen Fall im Skript abfragen?
Danke für den Hinweis - aber mein Problem liegt wo anders.
Nochmals die Problemstellung:
Gesteuert werden mehrere Raffstore.
Diese sollen zufahren wenn folgendes eintritt:
abhängig von der Uhrzeit / Sonnenstand (Vormittag nur Ost und Süd Seite - Nachmittag Süd und West)
beginnend um 07:30 Uhr - davor soll sich nichts rühren
Auslösung dann bei überschreiten der eingestellten Temperatur - schließlich will man ja die gratis Energie der Sonne nutzen - aber auch keine 30° in der Wohnung
Lösungsansatz:
Event aktivieren bzw. deaktivieren je nach Uhrzeit / Sonnenstand
und ich wollte mir die Temperaturabfrage einfach sparen - ich hoffte es gibt einen Schalter oder so - wenn ich das Ereignis aktiv setze und die Temperatur schon höher ist als der eingestellte Wert - dass dann gleich auch die Auslösung dieses Events erfolgt.
Wenn nicht, muss ich diesen Fall in meinem Event Aktivierungsscript abfangen. Aber ich hoffe noch immer es gibt diesen Schalter? :rolleyes:
Das Skript zum Zufahren wird über ein Ereignis gesteuert. Das Ereignis steht auf GRENZÜBERSCHREITUNG für die Variable Temperatur ( z.B. 30 ).
Genau dieses Ereignis wird durch ein zeitgesteuertes Skript AKTIV oder INAKTIV gesetzt, so wie Du es schon im ersten Post geschrieben hast.
That’s it. Ich sehe noch nicht ganz Dein Problem. Natürlich wird das o.a. Skript auch ausgeführt, wenn die Temperatur beim Aktivsetzen das Kritierium >30 erfüllt.
Befehl kann ich nicht wiederholen - sonst versucht der Raffstore öfters zuzufahren - hört man dann an den Schaltspielen.
Die Temperatur kommt von WDE1 Sensoren und da kann es sein dass die Meldung innerhalb von ein paar Sekunden ein zweites mal kommt - das würde dann den schließvorgang beenden - Fahrbefehl zu 2x stoppt bei FS20 den Schließzyklus.
Hat bei mir so nicht funktioniert - darum auch dieser Beitrag - wenn’s funktioniert hätte dann wär ja eigentlich mein Problem gelöst - werd mal ein Testscript machen und nochmals unabhänging mit Bildschirmausgaben testen.
Ein Ereignis wird nicht dadurch ausgeführt, dass du es aktivierst. Es wird ausgeführt, wenn die Variable an die du es verknüpft hast sich ändert. D.h. entweder du willst das Ereignis „scharf“ stellen, oder du solltest dein Skript so ändern, dass es direkt den if() Vergleich macht und deine Aktion ausführst.
Hast recht, sorry. Das Ereignis wird nach Aktivierung wirklich nicht ausgeführt. Hab’s eben mal getestet. Da hilft wohl wirklich nur die einmalige IF-Abfrage in dem aktivierenden Skript, wie von Parsey vorgeschlagen.
Wenn zB. die aktuelle Temperatur bei 26°C ist - und ich aktiviere das Ereignis -bei Grenzüberschreitung von 25°C
dh. die nächste Temp. die Empfangen wird - zb. nochmals 26,0 bzw. 26,2 (weiter steigend) - würde nichts auslösen, da ja die Grenze bereits überschritten ist?
Hab ich das so richtig verstanden?
Oder würde dann was passieren?
DANKE - das war jetzt meine Herausforderung ob das wirklich geht in 2 Zeilen.
$EreignisInfo = IPS_GetEvent(E_BUERO_PSK_ZU_ID);
if ( GetTempBuero() > $EreignisInfo["TriggerValue"] ) RaffstoreZu(BUERO_PSK);
fast geschaft - ich brauchte noch zwei Includes um mir die ganzen Konstanten und Funktionen zu holen - aber prinzipiell machbar:D
Geht das nicht vielleicht sogar als Einzeiler? - Kann ich irgendwie die TriggerValue bekommen ohne vorher das Array zu speichern?
Jetzt werd ich übermütig :rolleyes: