Allgemein
IPSMessageHandler stellt eine Schnittstell zur Rückmeldung der Hardware zu den Modulen zur Verfügung.
Der MessageHandler bietet die Möglichkeit Events auf Status Variablen zu definieren, Änderungen werden dann vom IPSMessageHandler an ein oder mehrere Module weitergeleitet.
Typische Anwendungsgebiete des IPSMesssageHandlers:
- Synchronisierung der aktuellen Position von Beschattungselementen
- Synchronisierung des aktuellen Status von Beleuchtungselementen
- Tasteingänge mit Modulen verbinden (Entertainment, Licht Schalten, Beschattung ansteuern)
- IR Signale mit Modulen verbinden (Entertainment, Licht Schalten, Beschattung ansteuern)
Installation
Das Modul ist bereits im „BaseLoader“ Script der IPSLibrary integriert.
Konfiguration
Für die aktive Rückmeldung von Hardware Instanzen muss man die entsprechenden Status Variablen im IPSMessageHandler registrieren.
Folgende Konfigurations Funktionen stehen zur Verfügung:
- IPSMessageHandler_GetEventConfiguration() – diese Funktion wird auf den Prozessen verwendet, die eine automatische Registrierung durchführen (manuelle Einträge verschwinden zwar hier nicht, aber es werden potentielle Kommentare oder ähnliches durch die automatische Bearbeitung entfernt).
- IPSMessageHandler_GetEventConfigurationCust() – diese Funktion ist für die manuelle Registrierung vorgesehen, Einträge habe dasselbe Format wie die obige Funktion.
- IPSMessageHandler_GetEventConfigurationIR() – hier können IR Signale mit Modulen verbunden werden.
Manuelle Registrierung
12345 => array('<<EventType>>','<<Component Definition>>','<<Module Definition>>',),<BR>
12345 – Status Variable, die überwacht werden soll <<EventType>> – hier muss der Type des Events eingetragen werden (OnChange oder OnUpdate)
<<Component Definition>> – entspricht der Component Definition, die für die Ansteuerung angegeben wird
<<Module Definition>> – entspricht der Module Component Schnittstelle
Es ist in diesem Bereich aufgrund des Umfangs noch nicht alles dokumentiert, im Alltag sollte es jedoch reichen, sich an die Beispiele im Example Ordner zu halten!
Beispiele:
12757 => array('OnChange','IPSComponentShutter_Homematic,50248','IPSModuleShutter_IPSShadowing,',), 43699 => array('OnChange','IPSComponentSwitch_Homematic,58524','IPSModuleSwitch_IPSLight,',), 17936 => array('OnUpdate','IPSComponentSensor_Button','IPSModuleSensor_IPSLight,IPSLight_ToggleSwitchByName,WellnessDecke'),
Automatische Registrierung durch Module
Für Homematic wird diese Registrierung bei den meisten Modulen bereits gemacht, für die Implementierung zusätzlicher Hardware sollte im Minimum der Name bzw. Ident der entsprechenden Statusvariable im zugehörigen Module Thread gepostet werden (Screenshot der Hardware Instanz ist sicher auch hilfreich).
Registrierung per Funktions Aufruf
Die Registrierung kann analog zur manuellen Registrierung auch per Funktionsaufruf gemacht werden:
IPSUtils_Include ('IPSMessageHandler.class.php', 'IPSLibrary::app::core::IPSMessageHandler'); $messageHandler = new IPSMessageHandler(); $messageHandler->RegisterOnChangeEvent($variableId, $component, $module);
Callback Funktionen
Folgende Callback Funktionen stehen zur Verfügung:
- IPSMessageHandler_BeforeHandleEvent($variable, $value, IPSComponent $component, IPSModule $module) {
- IPSMessageHandler_AfterHandleEvent($variable, $value, IPSComponent $component, IPSModule $module) {
Diese werden vor bzw. nach dem Behandeln eines Events aufgerufen.
Typische Szenarien
- Beim Status Wechsels eines Lichtes und Abwesenheit automatisch den Anwesenheits Modus aktivieren
- Beim Status Wechsels eines Lichtes und Urlaub automatisch Alarm auszulösen
- oder …
Weiterführende Links