hatte dies schon mal unter Beleuchtung gepostet, aber vermutlich war es dort einfach falsch.
Verzeiht mir wenn ich etwas ähnliches hier nochmals schreibe.
Habe über IPS einen Hue Bewegungsmelder/Lichtsensor und Hue Lampen (eine Lampe mit 5 Spots)
so „verknüpft“ das zwischen 6 - 21 Uhr, bei kleiner 5 lx die Lampen auf 70% eingeschaltet werden, bei Bewegung.
Klappt eigentlich gut, an geht es immer.
Sehr ähnlich habe ich es für nachts gemacht mit 10% Licht…
IPS ist für mich noch relatives Neuland und ich bin bzgl. php totaler Neuling.
SmartHome (HMIP, KNX, Hue, Alexa, …) sind für mich nicht neu, damit arbeite ich seit Jahren.
Am besten postest Du Deine bisherigen Versuche hier im Thread. PHP Code kannst Du mit den entsprechenden Tags hier einbinden. Meistens ist auch noch ein Screenshot aus dem Objektbaum hilfreich dazu.
Auf Basis der zur Verfügung stehenden Informationen wird man Dir nur sehr schwer bis gar nicht helfen können.
Treppenhauslicht hatte ich mir angesehen, aber hab keinen Anhaltspunkt gefunden es auf ein Ergebnis zu beziehen.
Oder ginge dies doch? Wäre natürlich einfacher als ein Skript und für so einen Neuling wie mich vermutlich ideal.
Wie gesagt hatte einige Skript-Versuche ohne Erfolg durch:
Vermutlich würde das Modul Treppenhauslichtsteuerung funktionieren, aber das Modul ist nicht auf Zeit änderbar.
Am Tag möchte ich das es länger an bleibt als in der Nacht, aber wie bekomme ich das am Modul hin?
Gäbe ja beide Wege.
Um das script am Tag / Nacht unterschiedlich laufen zu lassen würde ich so vorgehen.
Falls noch nicht geschehen :: Das Modul „Objektbaum => Kern Instancen => location“ konfigurieren
die ObjectID der variable :: „Objektbaum => Kern Instancen => location => ist es Tag“ merken
Vielen Dank!!!
Hat geklappt, mal sehen wie es heute Nacht wird.
Wenn ich statt Tag/Nacht auf die lx des Lichtsensors (im Hue Bewegungsmelder) wollte was müsste ich dafür machen?
Das z.B. bei kleiner 5 lx Nachtlicht läuft und bei kleiner 20 lx das helle Tageslicht der Lampe?
Nun du kannst in allen Skripten mit GetValue( ObjektID ) auf alle Variablen in deinem System zugreifen
$wert = GetValue(13688); liefert den Wert von Lichtniveau
und diese dann vergleichen und an/ aus oder sonst etwas schalten/tun
oder ein Ereignis erstellen das ab einem bestimmten wert von (Lichtniveau) an , und eine anderes aus schaltet. Es gibt viele Wege die zum Ziel führen können
zb.
<?php
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl (Licht aus)
RequestAction(32568, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
} else {
//An Befehl
$level = GetValue(13688); // Lichtniveau
// und nun nur schalten wenn der Level ok ist
if($level > 50) {
RequestAction(32568, true);
IPS_SetScriptTimer($_IPS['SELF'], 120);
}
}
?>
Oder so
<?php
if($_IPS['SENDER'] == "TimerEvent")
{
//Aus Befehl (Licht aus)
IPS_RequestAction(32568, false);
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0);
} else {
//An Befehl
$pruefe = GetValue(13688); // Lichtniveau
$istTag = GetValue(54076);
if($istTag) {
$dauer = 120;
$helligkeit=100; // Helligkeit am Tag
} else {
$dauer = 300;
$helligkeit=50; // Helligkeit in der Nacht
}
// und nun nur schalten wenn der Wert pruefe ok ist
if($pruefe > 50) {
RequestAction(56441, $helligkeit); // Helligkeit
// bei manchen Modulen muss der nachfolgene befehl (wenn das licht nun an ist) nicht extra ausgegeben werden.
IPS_RequestAction(32568, true);
IPS_SetScriptTimer($_IPS['SELF'], 120);
}
}
?>
Habe es, vorerst über ein Ergebnis gelöst.
Licht Tag/Nacht über Verschiedene Dauer bei Bewegung einschalten.
Am Tag habe ich als Weitere Bedingung noch Lichtniveau kleiner 7 lx eingestellt.
Zusätzlich ein Ergebnis Licht aus bei größer 15 lx.
So ergibt sich eine „Zone“ zwischen 7-15 lx in der nicht ein oder ausgeschaltet wird, vielleicht passe ich diese noch an.
Mal sehen wir das Licht so ausreicht,…
Einen Punkt hätte ich aber noch, vielleicht hast du einen Rat.
Im Esszimmer sind wir ohnehin weniger und die eingestellte Dauer der Beleuchtung/Tag reicht locker aus wenn wir dort sitzen.
Der Bewegungsmelder ist nicht sensibel genug um festzustellen das wir am Tisch sitzen, zu „ruhig“.
Wenn wir Besuch haben sitzen wir aber auch mal etwas länger am Tisch, spielen vielleicht mal etwas,…, gibt es eine Möglichkeit über einen „Button, Schalter“,… das Licht auf Dauer einzuschalten, das Skript so lange zu ignorieren bis wir es wieder einschalten?
Quasi einen Schalter für das Skript?
Brauche es in Web und App.
Habe in einigen Zimmern Tablets an der Wand hängen mit der App, auch im Esszimmer.
So könnte ich bei Besuch den Timer abschalten damit das Licht an bleibt.
Oder so einrichten das dieser Timer z.B. am dem nächsten Tag wieder normal weiter läuft.
Würde mich sehr interessieren wie du das gelöst hast.
Wie diese Bedingung aussehen könnte wäre mir zur Zeit unklar
Erstell eine Bool Variable. Nenn die Sperre oder sonst wie. Diese Variable stellt du bei deinem Ereignis bei erweiterte Bedingung ein. Also Variable != True dann Ereignis ausführen. Diese Variable kannst du über das Webfront oder App steuern.
Hatte bisher IPS in einem Container (QNAP) laufen.
Heute morgen ging alles, auch das Skript um die Lampen auszuschalten.
Habe nun von NAT auf Bridge umgestellt, wollte schon lange das IPS seine eigene IP bekommt, hatte nur nie Zeit dafür.
Sonst wurde am System nichts verändert.
Das Skript schaltet die Lampe nicht mehr aus, habt ihr eine Idee oder habe ich am Skript aus Versehen etwas verändert das ich nicht sehen?
Zum Skript wird ein Timer erstellt (25308).
Dieser bleibt immer inaktiv, jemand eine Idee?
Manuel kann ich ihn aktivieren, aber das ist ja nicht der Sinn.