Unterputzlichtschalter und -dimmer Auslöser zuordnen

Gibt es eine Möglichkeit bei den HM Unterputzschaltern und -dimmern festzustellen wann diese durch den angeschlossenen Taster (also manuel) ausgelöst wurden?

Hintergrund: Meine Flurbelechtung läuft über Bewegungsmelder und mit gedimmtem Licht. Wenn meine Freundin allerdings vorm Spiegel steht möchte sich 100% Licht, nur leider regelt der Bewegungsmelder nach erkennen einer Bewegung wieder seine Lichtstärke drüber…

Ich möchte also in Abhängigkeit zur manuellen Auslösung des Lichtes den Bewegungsmelder für eine Zeit X deaktivieren…

Schau doch einfach mal in den Objektbaum. Da kannst Du es selbst sehen, dass die Zeit mitgeliefert wird.
IMHO ist das bei allen Homematicteilen so.

Hallo Franky76,

Deine Problemlösung ist viel einfacher als Du denkst:
Du braucht nur in der Verknüpfungseinstellung des Bewegungsmelders auf der WebUI in den Experten-Mode wechseln und dort den Parameter SHORT_ON_LEVEL_PRIO auf LOW zu setzen (ggfs bei der Taster-Verknüpfung noch auf HIGH) und schon hat der Pegel der Taster-Verknüpfung Priorität :slight_smile:

Viele Grüße,
DGH77

Man lernt immer wieder dazu. Vielen Dank für die Info.

Klingt interresant, aber finde ich nicht :rolleyes: Wieder zu blöd hier…

Oder ist das HM only??

Ja, das gilt für HomeMatic. Danach wurde ja auch gefragt. Bei anderen Systemen kenn ich mich aber auch nicht so aus.

Gruß,
DGH77

Das bring mich leider nicht weiter. Meine UP Schalter sind nicht direkt mit den Bewegungsmeldern verbunden. Beide sind Standalone Geräte die erst über IPS miteinander verknüpft werden.

Kann sie auch leider nicht unter HM verbinden da ich dann auf Tageszeitabhängige Dimmwerte und die damit verbundenen Scripte verzichten muss! :frowning:

Aber es muss doch möglich sein , festzustellen ob der Taster betätigt wurde oder ob der UP Dimmer einen Befehl per Funk bekommt…:confused:

Aber es muss doch möglich sein , festzustellen ob der Taster betätigt wurde

Sicher ist das möglich, einfach die Variable auswerten. Press_Long/Press_short oder wie sie auch immer heissen mag.

Hi,

eben nicht, er meint den am Aktor direkt angeschloßenen Taster.
Der kann nicht extra augewertet werden.

Die einzige Möglichkeit ist, Taster abklemmen und eine Funk-Taster-Schnittstelle dran.
Dann kannst du auf den Tastendruck extra reagieren.
Mach ich bei mir auch so.
3 Taster + Bewegungsmelder, wenn einer der Taster das Lich einschaltet wird der BWM ignoriert bis das Licht wieder per Taster ausgemacht wird…

OK, dann habe ich es Mistverstanden. :wink:

Hi,

sorry wenn ich den Thread für meine Zwischenfrage misbrauche, aber es passt irgendwie so gut.
Ich habe bei MST zwei dieser Teile bestellt: HomeMatic 1-Kanal-Unterputzdimmer, Phasenabschnitt | ELV-Elektronik.

Dieser „Aktor“ soll bei mir direkt hinter den Taster geklemmt werden und schaltet/dimmt somit das Licht.

Jetzt meine Unsicherheit/Fragen:

  1. Kann ich von IPS aus die Helligkeit der angeschlossenen Lampe steuern?
  2. Sehe ich die aktuelle Raumhelligkeit in IPS wenn ich direkt am Schalter dimme?

Gruß
Thorsten

Hi,

1.) Ja
2.) Ja

Danke :).
Jetzt muss nur noch DHL klingeln und dann wird die Beleuchtung gescriptet und visualisiert :loveips:.

Gruß
Thorsten

Hm… das habe ich fast befürchtet. Jetzt noch mal für jeden verbauten UP Schalter / Dimmer nen Funktaster zu kaufen geht ja mal gar nicht… zudem dann ja auch noch die Verzögerung beim Einschalten dazukommt… :frowning:

Aber man müsste doch bei IPS „lauschen“ können ob IPS einen Funkbefehl für den entsprechenden UP Aktor sendet, und wenn IPS was sendet eine Kontrollvariable setze. Wenn ich nun feststelle, das Licht ist an, aber die Variable ist nicht gesetzt, also IPS war nicht der Auslöser, kann ich ja davon ausgehen, dass der Befehl vom Taster kommt… dann muss ich nur noch den Bewegungsmelder in dem Fall „ausschalten“…

So, und nun noch umsetzen… und das mit meinen PHP Kentnissen… :cool:

So, habe das Problem gelöst… ohne zusätzlichen Funkschalter :wink:

Als erstes habe ich mir zwei Hilfsvariablen vom Typ Boolean angelegt.

Die Erste bekommt den Wert „true“ wenn ich ein Script starte, dazu muss jedem Script das den Lichtschalter bedient der entsprechende Befehlt „SetValue“ hinzugefügt werden.

Die Zweite bekommt den Wert „true“ wenn die Variable Level des UP Aktors >0 ist. Das Passiert immer dann wenn ich den Schalter manuel betätige oder im iFront (getrigeres Script auf die Variable „Level“).

Wenn das Licht wieder aus geht, also der Float Wert des UP Aktors wieder 0 ist, werden beide Variablen wieder dur ein Script (getriggert durch Level =0) auf „false“ gesetzt.
Das passiert bei mir wenn ich das Licht manuel am Schalter oder am iFront ausstelle. Vergesse ich das, ist die Einschaltdauer über die HM CCU auf 15min festgelegt.

jetzt muss nur noch überprüft werden ob beide Fälle vorliegen. Wenn ja breche das Script ab und lasse es erst wieder zu wenn der UP Aktor ausgeschaltet wurde:

Dazu kommt in jedes Script das auf meinen UP Aktor zugreift folgender Eintrag:

<?

SetValueBoolean (36110, true); // Die Variable mit der ID 36110 bekommt den Wert true - Das heißt der UP Aktor wurde durch ein Script angesprochen

// Hier werden die Variablen ausgelesen mit dennen ich feststelle wer mein LS anspricht

$ScriptSender = GetValue (36110); // True = ein Script war der Auslöser
$OtherSender = GetValue (17296); // True = der LS wurde manuel, übers iFront oder die CCU angesprochen

// jetzt prüfe ich ob beide Variablen auf true stehen, wenn das der Fall ist verlasse das Script

IF (($ScriptSender == true) and ($OtherSender == true)) {return;}

// wenn nur das Script eine Variable auf "true" gesetzt hat gab es keine Manuelle Betätigung
// ergo: fahre fort mit der Beleuchtung gemäß des Bewegungsmeldersriptes..
//
?>

Hiho,

Du könntest auch einfach die Änderungszeit der Variblen abfragen… Oder…

Wenn Dimmer > 0 und Änderungszeit Dimmer > Zeit vom Bewegungsmelder, dann hat jemand per Hand am Dimmer eingeschaltet.

Ist Zar nicht getestet und aus dem hohlen Bauch raus, könnte Aber funktionieren :wink:

Grüße

Andreas

Das klingt kürzer, werde ich mir jetzt mal ansehen… :wink:

@ Andreas

Habe mal versucht deinen Vorschlag umzusetzen, scheint jetzt auch ganz gut zu gehen. Gefällt mir auch besser als meine erste Lösung.

Hier mal meine Umsetzung:

  1. Ein auf den „Level“ des Lichtschalter getriggertes Script. Dieses setzt je nach Systemzustand die Variable „Manuelle Betätigung“ auf true oder false. Diese muss noch als Variable des Typ „Boolean“ angelegt werden.
<?


//---------------Ermitteln der Aktualiesierung der Variablen für "Level" (Dimmer) und "Bewegung" (Bewegungsmelder)-----------------------
$ArrayBewegung = IPS_GetVariable (18864); 										// Weißt der Variablen $Daten... alle Infos über die Variablen ID als Array zu
$AktualisierungBewegungsmelder = $ArrayBewegung ["VariableUpdated"]; 	// Abfrage nach dem Schlüssel "VariableUpdated", ausgabe ist die UpdateZeit der Variablen

$AktualisierungBewegungsmelder = $AktualisierungBewegungsmelder + 4;  // Korrekturfaktor (Laufzeitausgleich von IPS)


$ArrayDimmer = IPS_GetVariable (32760);
$AktualisierungDimmer = $ArrayDimmer ["VariableUpdated"];
//-----------------------------------------------------------------------------------------------------------------------------------------



$LevelUPAktor = GetValue (32760); // Ermittlung des aktuelen Dimmwertes des UP Aktors


if (($LevelUPAktor >0) and ($AktualisierungDimmer > $AktualisierungBewegungsmelder))
	{SetValueBoolean (39801, true); // Manuelle Betätigung
  	}
  	
if (($LevelUPAktor >0) and ($AktualisierungDimmer < $AktualisierungBewegungsmelder))
	{
	SetValueBoolean (39801, false); // Betätigung durch den Bewegungsmelder
 	}
 	
if ($LevelUPAktor == 0)
	{
	SetValueBoolean (39801, false); // Keine Betätigung - die Variable Manuelle Betätigung wir auch hier auf "false" gesetzt
 	}



?>
  1. Das Script, das durch den Bewegungsmelder getriggert ist muss nun noch um folgende Zeilen ergänzt werden:
//-----------------------------Wer macht Licht an-------------------------------
$ManuelleAusloesungBewegung = GetValue (39801);       // Auslesen der Variablen "Manuelle Betätigung" (ID 39801)
if ($ManuelleAusloesungBewegung == true) {return;}    // Wenn diese auf true steht, es also eine manuelle Betätigung gab, verlasse das Script
//------------------------------------------------------------------------------

Damit das Licht bei einer manuellen Betätigung nicht ewig brennt muss die Einschaltzeit in der CCU noch begrenzt werden. Schaltet die CCU den UP Dimmer wieder auf „0“ wird auch die Variable „manuelle Betätigung“ wieder auf false gesetzt.

So, hoffe das ist jetzt Fehlerfrei… :slight_smile:

Im Screenshot sieht man „Datenbank - Holodeck 51“.
Wo kann ich denn ein IPS steuerbares Star Trek Holodeck bestellen :D?

Gruß
Thorsten