Zeitplan welcher mit einem Sollwert funktionieren könnte....

Hallo liebe IPS User, komme leider irgendwie nicht weiter … Mein Wunsch ist ein Wochenplan mit einem Zeitfenster z.B. 18-23 H und Ausführung wenn Sollwert unterschritten ist (Helligkeit unter 30lx z.B.soll Lampe X in diesem Zeitfenster geschaltet werden). Bekomme die Ereignisse einzeln hin, also z.B. die Zeitsteuerung oder einschalten unter 30lx . Bei beiden in Kombination komme ich leider nicht weiter.

Die lichtwerte bekomme ich von einem KNX Bewegungsmelder. Eine Float Variable zum auslesen der Lichtwerte läuft bereits. Alle 10 Min sendet der Bewegungsmelder die Lichtwerte.

Hat jemand eine Idee, wie ich das hinbekomme?

Vielen Dank für Eure Hilfe

Mal so grob unrissen. Mit dem Wochenplan schaltest du ne Variable. Wie im Beispiel für den Wochenplan beschrieben. Dann machst du n Trigger auf den Helligkeitswert, der dann ein Skript startet. In diesem Skript schaust du dann ob die Wochenplan Variable entsprechend gesetzt ist. Und daraus wird dann deine Aktion gesetzt.

Verstanden?

Moin!

Um bei deinem Beispiel zu bleiben

Helligkeit unter 30lx z.B.soll Lampe X in diesem Zeitfenster geschaltet werden
… würde ich es einfach wie folgt machen:

Lampe über Wochenplan oder über 2 Timer-Events um X Uhr einschalten und um Y Uhr ausschalten. Im An/Aus-Script aber ganz einfach vor den Befehl für „Lampe AN“ eine Abfrage „if (GetValue($Helligkeit) < 30)“. Fertig! :slight_smile:

Dann wird das Script immer um X Uhr aufgerufen zum Lampe anschalten, aber der Schaltbefehl wird nur ausgeführt, wenn Helligkeit unter 30 ist.

Grüße,
Christoph

Das funktioniert aber nicht. Ist der Lux-Wert zu dem einen Schaltpunkt (EIN) größer 30 wird die Lampe nicht eingeschaltet und auch an diesem Tag nicht erneut getriggert.
Ich würde es wie Spoosie machen. Eine Variable die vom Wochenplan ein- und ausgeschaltet wird und den Helligkeitswert als Trigger für ein Skript.
Peter

Dann hatte ich das falsch verstanden…wenn innerhalb der Zeitspanne auch noch eingeschaltet werden soll, und nicht nur zu Beginn, und wenn Helligkeit unter 30 ist, dann brauchst du einen Wochenplan oder 2 Variablen/Werte die Beginn/Ende definieren und wenn dann innerhalb dieser Zeitspanne die Helligkeit unter 30 ist, dann muss die Helligkeit der Trigger sein und prüfen, ob aktuell der Wochenplan aktiviert ist oder du dich gerade innerhalb einer Zeitspanne bewegst (z.B. „if ((date(„G“) >= 18) AND (date(„G“) < 23))“) und dann die Lampe einschalten oder nicht.

Grüße,
Chris

werde heute Abend mal ein wenig tüfteln…

boolean IPS_SetEventTriggerValue ( integer $16365, variant $Grenzwert )

und hat es funktioniert?

LG Izack

<?

// Dieses Skript wird durch den Trigger einer sich verändernden LUX Variable aufgerufen

$switchArray= array(

		// Zuordnung 1
			  array("Light_EIBVar" =&gt; 42256 ,
					  "LUX_EIBVar" =&gt; 52331 ),
		// Zuordnung 2
			  array("Light_EIBVar" =&gt; 46281 ,
					  "LUX_EIBVar" =&gt; 34775 )
				);

$wochenplanID = 48125 /[Information\Profil\Wochenplan]/ ;

$light_EIBVar = -1;

// Das vordefinierte Array von oben durch gehen und die aufrufende LUX Variable finden und damit die Ziellampe aussuchen
foreach($switchArray as $switch)
if ($_IPS[„VARIABLE“] == $switch[„LUX_EIBVar“])
$light_EIBVar = $switch[„Light_EIBVar“];

// Nun den Lux Wert aus der Variable lesen
// Alternativ könnte man hier diese Variable nutzen
// $lux = $_IPS[„VALUE“]; … das geht aber NUR, wenn die Variable die dieses Skript aufruft, auch die LUX Variable ist
$lux = GetValue($_IPS[„VARIABLE“] );

IPS_LogMessage(„Test“,„Lux=“.$lux." von ".$_IPS[„VARIABLE“]);

// Ziel soll aus
$switch = false;

// Wenn LUX Wert unterschritten… dann
if ($lux <= 10)
{
// Wochenplan auslesen
$wochenplan = GetValue($wochenplanID);

	// 1 steht für an.. siehe Wochenplan definition
	// bzw. die Aktion für das entsprechende Element
	// SetValue($_IPS["TARGET"],1); oder SetValue($_IPS["TARGET"],0 ... 100);
	if ($wochenplan == 1)
	{
	IPS_LogMessage("Test","Wochenplan aktiv -&gt; Lampe schalten!");
		// Ziel soll an
	$switch = true;
	}
	else
	IPS_LogMessage("Test","Wochenplan inaktiv -&gt; schalte nicht");


}
else
	IPS_LogMessage("Test","Noch zu hell!");


// Wurde zu der LUX Variable eine Zielvariable gefunden?
if ($light_EIBVar &gt; 0)
{
	IPS_LogMessage("Test","Schalte EIB ".$light_EIBVar." = ".$switch);
	// Ziel nach Vorgabe schalten
	EIB_Switch($light_EIBVar,$switch);
}
else
	IPS_LogMessage("Test","EIB Var nicht gefunden");

?>