Allgemein
IPSShadowing ist ein Modul der IPSLibrary, um die Beschattung eines Hauses zu steuern.
Das Script bietet diverse Programme um eine autom. Beschattung abhängig von Tag, Nacht, Temperatur, Sonnenstand,Wetter und auch An- oder Abwesenheit individuell zu realisieren.
Folgende Parameter können für die Beschattung ausgewertet werden:
- Zeit
- Temperatur
- Helligkeit
- Sonnenstand
- Windgeschwindigkeit
- Regen
Installation
Voraussetzung
Vorausetzung ist, dass der IPSModuleManager der IPSLibrary bereits installiert ist – Details können dem Foren Thread entnommen werden.
Download und Installation
Benötigte Module
- IPSTwilight, wird für die Berechnung der Dämmerungszeiten benötigt
Voraussetzungen
Die Instanzen zur Ansteuerung der Beschattungselemente müssen bereits vorhanden sein (zB Homematic Shutter Instanz).
Weiters müssen die Sensoren als Variablen zur Einbindung zur Verfügung stehen (optional).
Die Installation gliedert sich wie für alle IPSLibrary Module in 3 Teile:
Installation
Die Installation gliedert sich wie für alle IPSLibrary Module in 3 Teile:
- Download
- Konfiguration
- Installation
Download und Installation können entweder manuell mit dem IPSModuleManager gemacht werden oder man verwendet das IPSModuleManagerGUI Modul.
Konfiguration
Die Konfiguration der Beschattungssteuerung besteht aus der Verlinkung zu diversen Sensoren und der Definition der Beschattungselemente.
Eine Neuinstallation der Steuerung ist nur nötig, wenn man ein Beschattungsdevice hinzufügt, löscht oder dessen Namen oder Beschattungstype ändert!
Sensoren
Temperatursensor Innen
Definition des Innentemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Innentemperatur als Float Value enthält. Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TEMPSENSORINDOOR", "");
Temperatursensor Aussen
Definition des Aussentemperatur Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Aussentemperatur als Float Value enthält. Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TEMPSENSOROUTDOOR", "");
Helligkeitssensor
Definition des Helligkeits Sensors, die Konstante muß auf eine Variable verweisen, die die aktuelle Helligkeit als Integer oder Float Value enthält. Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_BRIGHTNESSSENSOR", '');
Regensensor
Definition des Regen Sensors, die Konstante muß auf eine Variable verweisen, die den Wert des Sensors als boolschen Wert enthält. Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_RAINSENSOR", "");
Windsensor
Definition des Wind Sensors, die Konstante muß auf eine Variable verweisen, die den Wert des Sensors als Float Wert mit Angabe in „kmh“ enthält, Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_WINDSENSOR", "");
Anwesenheits Flag
Definition des Anwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Anwesenheits Status als boolean Wert enthält (true bedeutet Anwesend). Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_PRESENT", '');
Abwesenheits Flag
Definition des Abwesenheits Flags, die Konstante muß auf eine Variable verweisen, die den aktuellen Abwesenheits Status als boolean Wert enthält (true bedeutet Abwesend). Diese Variable kann alternativ zu dem Anwesenheits Flag gesetzt werden. Die Verlinkung der Variable erfolgt entweder direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_ABSENCE", "");
Zeiten
Zeitpunkt Sonnenaufgang
Definition des Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form hh:mm enthält. Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TWILIGHTSUNRISE", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBegin");
Zeitpunkt Sonnenuntergang
Definition des Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form hh:mm enthält. Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TWILIGHTSUNSET", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEnd");
Zeitpunkt limited Sonnenaufgang
Definition des „limited“ Tagesbeginn Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TWILIGHTSUNRISELIMITED", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBeginLimited");
Zeitpunkt limited Sonnenuntergang
Definition des „limited“ Tagesend Zeitpunktes, die Konstante muß auf eine Variable verweisen, die die Zeit in der Form hh:mm enthält. Durch diese Variable ist es möglich, dass der Tagesbeginn in bestimmten Grenzen liegen muß. Verlinkung erfolgt direkt durch Angabe der ID oder durch Angabe des Pfades.
define ("IPSSHADOWING_TWILIGHTSUNSETLIMITED", "Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEndLimited");
Lage des Hauses
Angabe des Breitengrades zur Berechnung des Sonnenstandes
define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE);
Angabe des Längengrades zur Berechnung des Sonnenstandes
define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE);
Allgemeine Parameter
Ausrichtung des Gebäudes
Dieser Wert spezifiziert die Abweichung von der Ausrichtung des Gebäudes Richtung Süden in Grad.
define ('IPSSHADOWING_BUILDINGORIENTATION', -15);
Verhältnis der Gebäudewände
Mit diesem Parameter kann das Verhältnis der Länge der Gebäudewände in der Grafik verändert werden.
0 bedeutet dass alle Gebäudewände gleich lang sind, bei positiven Werten wird die südliche Seite des Gebäudes breiter und umgekehrt.
define ('IPSSHADOWING_BUILDINGRELATION', 10);
Anzahl der Log Meldungen
Über die Konstante IPSSHADOWING_LOGMESSAGECOUNT kann man die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden, einstellen.
define ("IPSSHADOWING_LOGMESSAGECOUNT", 30);
Programm Verzögerung
Über die Konstante IPSSHADOWING_PROGRAM_DELAY kann man wie oft sich das Beschattungsprogramm innerhalb einer definierten Zeit ändern darf. Der Wert wird in Minuten angegeben, spezifiziert man zum Beispiel 30 Minuten, so wird ein gewähltes Beschattungsprogramm 30 Minuten aktiv bleiben, auch wenn sich die Profile mittlerweile bereits wieder ein anderes Programm vorgeben würden. Dadurch kann man zB verhindern, dass durch kleinere Temperaturschwankungen sich die Beschattung dauernd ändert
define ("IPSSHADOWING_PROGRAM_DELAY", 0);
Beschattungselemente
Die Definition der Beschattungs Elemente erfolgt in der Funktion get_ShadowingConfiguration(), diese liefert ein Array mit allen Beschattungselementen und deren Eigenschaften zurück.
Für jedes Beschattungs Device wird ein Eintrag im Array erzeugt, die Properties im Array definieren jeweils die Eigenschaften, die für die Ansteuerung des Elementes verwendet werden.
Die Eigenschaft c_Property_ShadowingType spezifiziert den Type der Beschattung, folgende Typen stehen zur Auswahl:
- c_ShadowingType_Jalousie, Ansteuerung einer Jalousie, es werden noch zusätzliche Properties ausgewertet, um die Lamellen in eine bestimmte Position zu bringen
- c_ShadowingType_Shutter, Ansteuerung eines normalen Rollos
- c_ShadowingType_Marquees, Ansteuerung einer Markise
Der Eintrag „c_Property_Name“ spezifiziert den Namen des Beschattungs Elements, der im WebFront und in den Log’s angezeigt wird.
Der Eintrag „c_Property_Component“ spezifiziert die Hardware, es kann jeder „Shutter“ Component String Konstruktor angegeben werden. Detailiertere Informationen kann man auch im core Modul IPSComponent finden.
Mit den Properties c_Property_TimeOpening, c_Property_TimeClosing, c_Property_TimeDimoutUp, c_Property_TimeDimoutDown, c_Property_TimePause werden die Fahrzeiten spezifiziert. c_Property_TimeDimoutUp und c_Property_TimeDimoutDown werden nur bei Jalousien ausgewertet, um die Lamellen in die Verdunkelungs- bzw. Beschatttungsposition zu bringen.
Mit c_Property_TempSensorIndoor ist die Einbindung eines Innentemperatursensors für das Beschattungselement möglich. Verlinkung erfolgt durch Angabe des Pfades oder direkt durch die ID der Temperatur Variable.
Beispiel für die Definition einer Jalousie (weitere Beispiele sind auch in den Files im „Example“ Ordner zu finden).
function get_ShadowingConfiguration() { return array( c_ShadowingDevice_1 => array( c_Property_ShadowingType => c_ShadowingType_Jalousie, c_Property_Name => 'Küche', c_Property_Component => 'IPSComponentShutter_Dummy,12345', c_Property_TimeOpening => 35, c_Property_TimeClosing => 35, c_Property_TimeDimoutUp => 2, c_Property_TimeDimoutDown => 3, c_Property_TimePause => 1, c_Property_TempSensorIndoor => '', ), ); }
GUI
Übersicht
Die Übersicht bietet eine zentrale Möglichkeit zur Bedienung aller Beschattungselemente und zeigt auch den aktuellen Status jedes Beschattungselementes. Zusätzlich bietet die Übersicht noch die Möglichkeit zur Auswahl eines bestimmten Szenarios (Details zu diesen siehe weiter unten).
Über die Bedienelemente „Automatik Ein“ bzw. „Automatik Aus“ kann die automatische Ansteuerung durch die Programme für alle Beschattungselemente zentral Ein- bzw. Ausgeschaltet werden. Mit „Automatik Reset“ kann der manuelle Modus für alle Beschattungselemente zurückgesetzt werden (im Falle einer manuellen Bedienung eines Beschattungselementes wird ein Flag gesetzt, um zu verhindern, dass die Programm Automatik wieder entgegenwirkt).
Beschattungselemente
In dieser Ansicht kann man die Programm Einstellungen für jedes Beschattungselement vornehmen.
Über die Bedienelemente Programme kann die jeweilige Aktion festgelegt werden, über die Profile ist die Definition der dafür notwendigen Bedingungen möglich.
Programme
Das „Programm Nacht“ bzw. „Programm Tag“ legt fest ob eine automatische Ansteuerung in den Nachtzeiten bzw. während des Tages erfolgen soll (Wechsel zwischen Tag und Nacht wird über die Profile „Tagesbeginn“ und „Tagesende“ definiert).
Übersteuert wird das ganze durch die Programme „Temperatur“ und „Anwesenheit“, wobei „Anwesenheit“ die höchste Priorität hat. Ist dieses Programm nicht aktiv wird über prüft ob eine Ansteuerung durch das Temperatur Programm nötig ist (wird durch die Profile Temperatur und Sonnenstand definiert, beide müssen für eine Ansteuerung aktiv sein).
Im Falle der Markise wird diese Logik noch vom Wetter Programm übersteuert. Dieses hat die höchste Priorität und sorgt dafür, dass die Markise bei Schlechtwetter eingefahren wird.
Programme für Jalousien
Folgende Programme stehen zur Auswahl:
- Offen
- Geschlossen
- Offen oder Beschattung, die Beschattung wird bei diesem Programm in eine der beiden Positionen gefahren, um einen Lichteinfall zu ermöglichen
- Schatten oder Geschlossen, die Beschattung wird bei diesem Programm in eine der beiden Positionen gefahren, um eine Überhitzung zu verhindern
- Schatten und Geschlossen, die Beschattung wird zuerst in die Beschattungsposition gefahren und bei weiterem ansteigen der Temperatur wird die Beschattung komplett geschlossen. Gesteuert wird dieses Verhalten über die Temperatur Grenzen im gewählten Temperatur Profile (Beschattet wird sobald die Temperatur für „Beschattung Innen“ und „Beschattung Aussen“ erreicht ist, Geschlossen wird die Beschattung wenn die Temperatur von „Schliessen Aussen“ und „Schliessen Innen“ erreicht ist).
- Geöffnet Tag
- Geöffnet Nacht
Programme für Rollos
Folgende Programme stehen zur Auswahl:
- Offen
- Geschlossen
- 25%
- 50%
- 75%
- 90%
- Geöffnet Tag
- Geöffnet Nacht
Programme für Markisen
Folgende Programme stehen zur Auswahl:
- Eingefahren
- Ausgefahren
- 50%
- 75%
- Ausgefahren Temperatur, spezielles Programm für Steuerung über das Anwesenheitsprogramm, hier wird die Markise ausgefahren, wenn das Anwesenheitsprogramm aktiv ist und die Temperatur Profile aktiv ist
Profile
Eine Detailierte Beschreibung der Profile findet sich weiter unten.
Automatik
Mit diesem Schalter kann man steuern, ob die Steuerung der Beschattungselemente durch die Programme aktiv ist oder nicht.
Manueller Modus
Dieses Flag wird automatisch gesetzt, sobald eine manuelle Bedienung der Beschattungselemente stattgefunden hat. Dies verhindert, dass eine manuelle Änderung der Beschattungs durch die Automatik der Programme wieder rückgängig gemacht wird.
Derzeit wird das Flag um Mitternacht wieder autom. zurückgesetzt, ab diesem Zeitpunkt werden dann die Programme wieder normal ausgeführt. Es ist natürlich jederzeit möglich dieses Flag manuell oder per Script zurückzusetzen. In der Übersichtsseite befindet sich ebenfalls ein Script, mit dem man dieses Flag für alle Elemente zurücksetzen kann.
Temperatur Modus
Dieses Flag zeigt an, ob die Beschattung durch das Temperatur Programm für dieses Element gerade aktiv ist.
Szenarien
Mit der Szenarien Definition ist es möglich eine Gruppe von Beschattungselementen in eine bestimmte Position zu bringen. Beispielsweise können folgende Szenarien definiert werden
- Alle Jalousien öffnen oder schliessen
- Alle Beschattungselemente eines Stockwerks öffnen oder schliessen
- Alle Beschattungselemente einer Hausseite öffnen oder schliessen
- Beschattung Terrasse öffnen und Markise ausfahren
Im WebFront stehen Bedienelemente zur Verfügung um neue Szenarien anzulegen oder bestehende zu löschen. Mit dem Szenario Auswahlschalter kann ein bestimmtes Szenario im WebFront bzw. im Mobile Interface angezeigt werden.
Mit dem Schalter „Editier Modus“ kann ein Szenario in den Konfigurations Modus geschaltet werden. Danach ist es möglich den Namen des Szenarios zu ändern und für jedes Beschattungselement eine bestimmte Aktion festzulegen. Wird der Editier Modus wieder verlassen, werden alle Bedienelemente, die den Status „keine Aktion“ zugewiesen haben, wieder gelöscht.
Profile
Profile bilden die Grundlage für die Steuerung der Programme. Es gibt derzeit 5 verschiedene Profile um eine Programmsteuerung in Abhängigkeit von Zeit, Temperatur, Sonnenstand und Wetter zu steuern.
Jedes Profil besitzt neben den normalen Profil spezifischen Einstellungsmöglichkeiten auch noch ein „Profil-Info“ Feld, das alle Sensorwerte des Profils anzeigt.
Zusätzlich werden jene Profile, die gerade aktiv sind (also eine Beschattung auslösen) mit einem leichten Farbton dargestellt, um eine bessere Visualisierung zu ermöglichen.
Bei jedem Profil gibt es die Möglichkeit ein neues Profil anzulegen oder ein bestehendes zu löschen. Mit dem jeweiligen Profil Auswahlschalter kann des jeweilige Profil im WebFront bzw. im Mobile Interface dargestellt werden.
Durch das Änderen des Feldes „Profil Name“ ist ein umbenennen des jeweiligen Profils möglich.
Temperatur Profile
Dieses und das „Sonnenstand Profil“ ist für die Steuerung der Temperatur Programme verantwortlich.
Wenn man den jeweiligen Wert auf „Ignorieren“ stellt, erfolgt keine Auswertung der Temperatur Grenze. Sind alle Temperatur Grenzen auf „Ignorieren“ gestellt erfolgt die temperaturabhängigie Beschattung defakto nur über den Sonnenstand.
Sollten keine Temperatursensoren vorhanden sein, so werden die eventuell eingestellten Werte ebenfalls ignoriert.
Temperatur Grenzen Schliessen
Es kann die jeweilige Innen bzw. Außen Temperatur spezifiziert werden, die vorhanden sein muss, damit das Profil aktiv ist.
Temperatur Grenzen Beschattung
Mit diesem Temperatur Grenzen kann man bei Jalousien eine Stufenweise Beschattung realisieren (siehe auch Beschreibung der Programme bei den Beschattungselementen).
Wenn diese Wert niedriger als die Grenzen für das Schliessen gewählt werden, dann fährt die Jalousie zuerst in die Beschattungsposition und bei weiterem ansteigen der Temperatur erst in den geschlossenen Zustand.
Für die Beschattungstypen „Rollo“ und „Markise“ sollte der Wert auf „Ignorieren“ belassen werden.
Temperatur Grenzen Öffnen
Mit diesen Werten kann man verhindern, dass die Beschattungselemente beim inaktiv werden des Profils sofort wieder öffnen.
Normalerweise fahren die Beschattungselemente bei der temperaturgeführten Beschattung wieder in den ursprünglichen Zustand sobald das Temperatur Profil oder das Sonnenstand Profil nicht mehr aktiv sind. Mit diesen Werten kann man auch noch erzwingen, dass die Temperatur unter einem bestimmten Wert sein muss, bevor geöffnet wird.
Helligkeits Grenze
Für einen Helligkeitssensor kann man einen „oberen Grenzwert“ und einen „unteren Grenzwert“ vorgeben. Das Profile wird aktiviert wenn der „obere Grenzwert“ überschritten wird und erst wieder deaktiviert wenn der „untere Grenzwert“ unterschritten wird
ACHTUNG: Screenshot ist veraltet, da es zur Zeit keine Möglichkeit zum Hochladen von Bildern ins WIKI gibt …
Sonnenstand Profile
Mit diesem Profil ist es möglich, den Stand der Sonne in die automatische Beschattung zu integrieren.
Unterstützt wird man bei der Konfiguration durch eine kleine Visualisierung des aktuellen Sonnenverlaufes und der Lage des Hauses.
Zusätzlich gibt es noch die Möglichkeit zur Simulation des Sonnenstandes über ein komplettes Jahr. Aktiviert man diese, wird der Sonnenverlauf für jedes Monat einmal kurz durchgeschaltet.
Mit dem Schalter „Orientierung“ kann die Ausrichtung nach Süden aktiviert bzw. deaktiviert werden.
Wetter Profile
Wetterprofile ermöglichen es eine Markise bei zu viel Wind oder dem Ansprechen eines Regensensors automatisch einzufahren.
Der Windsensor und der Regensensor sind in einer ODER Logik zusammengefasst. z.B. Auslösung bei Wind größer als 6 km/h oder bei Regen.
Weiters kann die Einheit der zu messenden Windgeschwindigkeit in den Konfigurationseinstellungen gewählt werden:
/** Profil Wetterdefinition / Klassifiktation * * Definition/Masseinheit des Windlevels. * Einstellung: false Vergleich der Windgeschwindigkeit mit dem Windlevel in km/h * true Vergleich der Windgeschwindigkeit mit dem Windlevel in Beaufort * * Dieser Parameter kann jederzeit geändert werden. * Eine erstmalige Installation über den ModuleManager oder ModuleManagerGUI ist notwendig. */ define ("IPSSHADOWING_WINDLEVEL_CLASSIFICATION", false);
Einstellung anhand der Einheit (Windgeschwindikeit) in km/h.
Einstellung anhand der Einheit (Windgeschwindikeit) in Beaufort.
Tagesbeginn und Tagesende Profile
Diese Profile definieren den Beginn und das Ende eines Tages (während der Tageszeit ist das Tagesprogramm aktiv und während der Nacht das Nachtprogramm).
Mit dem Auswahlschalter „Zeit Modus“ kann man zwischen 3 verschiedenen Modi zur Berechnung des jeweiligen Zeitpunktes umschalten:
- „Individuelle Zeit“, definiert eine fixe Zeit, zur der der Tagesbeginn bzw. Nachtbeginn stattfinden soll
- „Dämmerung“, bei diesem Modi werden die Wechsel automatisch an die Dämmerungszeiten gekoppelt
- „Dämmerung (begrenzt)“, auch bei diesem Modi werden die Zeiten an die Dämmerung gekoppelt, allerdings ist diese durch vordefinierte Zeiten begrenzt (zB Sonnenuntergang aber nicht früher als 18:00 und auch nicht später als 20:00
im Feld „Zeit“ kann man die gewünschte Tageszeit in der Form „HH24:MI“ eintragen (voraussetzung Modus „Individuelle Zeit“ ist gewählt).
Mit dem Feld „Versatz“ ist es möglich einen Zeitversatz zu definieren (also zB 15 Minuten nach der Dämmerung).
Die Zeiten können jeweils getrennt für Wochentage und Wochenenden eingestellt werden. Eine Berücksichtigung der Feiertage findet nicht autom. statt, diese kann aber über die Callback Methode „IPSShadowing_IsWorkingDay()“ einfach realisiert werden.
Einstellungen
Benachrichtigungen
Für jede Programm Aktion (Schliessen oder Öffnen eines Beschattungselementes auf Grund eines Programmes) kann man sich über den IPSLogger benachrichtigen lassen. Hier ist es möchlich für die Ansteuerung durch „Temperatur“ bzw. „Wetter“ Programme eine Priorität zu definieren, mit der die Benachrichtigungen verschickt werden sollen (In den Einstellungen des IPSLoggers ist es möglich zu definieren welche Meldungen zu welchem Output gesendet werden sollen).
Meldungen
Beinhaltet ein Log aller Programm Aktionen bzw. Änderung an Einstellungen der letzten Zeit (limitiert durch Anzahl der Meldungen, die in der Konfiguration eingestellt ist).
Synchronisation manueller Ansteuerung
Rückmeldung der Beschattungs Elemente erfolgt im Prinzip über die Funktion MoveByEvent der Klasse IPSShadowing_Device. Diese Funktion erwartet einen Wert zwischen 0 und 100, wobei 0 „Offen“ und 100 „Geschlossen“ bedeutet.
Beispiel:
Im folgenden Beispiel teilt man der Beschattungssteuerung mit, dass das Element mit der ID 12345 auf 50% steht (12345 ist die ID des Beschattungselementes in IPSShadowing, zu finden unter Program.IPSLibrary.data.modules.IPSShadowing.Devices)
IPSUtils_Include ('IPSShadowing.inc.php', 'IPSLibrary::app::modules::IPSShadowing'); $device = new IPSShadowing_Device(12345); $device->MoveByEvent(50);
Synchronisation mit dem IPSMessageHandler
Homematic
Für Homematic ist bereits eine autom. Synchronisation implementiert.
In der Installations Prozedur wird für jede Homematic Instanz, ein Event angelegt, das dann den IPSMessageHandler aufruft und über die Funktion HandleEvent der Klasse IPSComponentShutter_Homematic die Synchronisierung durchführt (in dieser Funktion wird auch die Umrechnung auf den korrekten Wertebereich von IPSShadowing vorgenommen).
Manuell kann diese Synchronisierung auch mit folgendem Code gemacht werden:
IPSUtils_Include ('IPSMessageHandler.class.php', 'IPSLibrary::app::core::IPSMessageHandler'); $messageHandler = new IPSMessageHandler(); $messageHandler->RegisterOnChangeEvent(12345, 'IPSComponentShutter_Homematic,67890', 'IPSModuleShutter_IPSShadowing') {
Danach sollte ein Event auf der entsprechenden Variable angelegt worden sein und folgender Eintrag im Konfigurations File IPSMessageHandler_Configuration.inc.php vorhanden sein:
function IPSMessageHandler_GetEventConfiguration() { $eventConfiguration = array( 12757 => array('OnChange','IPSComponentShutter_Homematic,50248','IPSModuleShutter_IPSShadowing,',), 50835 => array('OnChange','IPSComponentShutter_Homematic,24528','IPSModuleShutter_IPSShadowing,',), 26628 => array('OnChange','IPSComponentShutter_Homematic,56299','IPSModuleShutter_IPSShadowing,',), ); return $eventConfiguration; }
Andere Systeme
Für andere Systeme ist diese Rückmeldung noch nicht implementiert, Anpassung der entsprechenden Komponenten ist aber problemlos möglich, wenn folgende Informationen geliefert werden (einfach im Forum posten):
* Name der Variable, die für die Synchronisierung verwendet werden soll * Wertebereich der Variable
Callback Funktionen
Callback Funktionen sind im File IPSShadowing_Custom.inc.php zu finden und ermöglichen es eigenen Code bei bestimmten Aktionen auszuführen. Dieses File wird auch durch Updates nicht überschrieben.
IPSShadowing_IsWorkingDay()
Diese Funktion wird von der Beschattungs Steuerung aufgerufen um zu ermitteln ob der aktuelle Tag ein Werktag ist ein Return Wert von TRUE steht für einen Werktag, FALSE für ein Wochenende oder Feiertag. Bei NULL erfolgt die Ermittlung durch die Steuerung selbst (Feiertage werden dabei NICHT berücksichtigt)
IPSShadowing_ProgramCustom
Ermöglicht die Einbindung einer eigenen Programm Logik. Die Funktion wird zyklisch durch den Programm-Timer (derzeit 5 Minuten) aufgerufen, soferne nicht eine manuelle Bedienung oder das Wetterprogramm aktiv ist.
Die eigentliche Ansteuerung der Jalousien/Rolladen/Markise erfolgt durch den Aufruf von „IPSShadowing_MoveByProgram“ (Details siehe manuelle Ansteuerung weiter unten).
Um die Übersteuerung durch andere Programme zu unterbinden muß im Falle einer Ansteuerung „true“ durch die Funktion retouniert werden.
IPSShadowing_BeforeActivateShutter($deviceId, $command)
Diese Funktion wird vor jeder Ansteuerung eine Beschattungselementes aufgerufen, sollte die Funktion false retounieren, wird die „Component“ Funktion zur Beschattung nicht mehr aufgerufen (customer spezifische Ansteuerung).
Als Parameter erhält die Funktion die aktuelle DeviceId (also Program.IPSLibrary.data.modules.IPSShadowing.Devices.MyCurrentDevice) und das Command (mögliche Werte: „c_Movement_Down“,“c_Movement_Stop“ und „c_Movement_Up“)
IPSShadowing_AfterActivateShutter($deviceId, $command)
Diese Funktion wird nach jeder Ansteuerung eines Beschattungselementes aufgerufen.
IPSShadowing_Refresh($deviceId, $stepCount, $step, $command, $secsToDo, $secsDone)
Diese Funktion wird bei jedem Refresh Vorgang aufgerufen und bietet einem die Möglichkeit eigene Variablen zur Visualisierung der Beschattung zu befüllen.
Möglichkeiten zur manuellen Ansteuerung
Manuelle Ansteuerung eines Beschattungselementes
IPSUtils_Include('IPSShadowing.inc.php', 'IPSLibrary::app::modules::IPSShadowing'); $device = new IPSShadowing_Device(12345); $deviceActive = $device->MoveByControl(c_MovementId_Closed);
12345 ist die jeweilige ID des Beschattungselementes, diese findet man unter „Program.IPSLibrary.data.modules.IPSShadowing.Devices“
Für den Beschattungstype Rollo stehen folgende Konstanten zur Auswahl:
define ("c_MovementId_Closed", 0); define ("c_MovementId_90", 4); define ("c_MovementId_75", 5); define ("c_MovementId_50", 6); define ("c_MovementId_25", 7); define ("c_MovementId_Opened", 8); define ("c_MovementId_Stop", 13);
Beschattungstype Jalousie:
define ("c_MovementId_Opened", 8); define ("c_MovementId_Dimout", 1); define ("c_MovementId_Shadowing", 2); define ("c_MovementId_Stop", 13);
Beschattungstype Markise:
define ("c_MovementId_MovedOut", 3); define ("c_MovementId_90", 4); define ("c_MovementId_75", 5); define ("c_MovementId_50", 6); define ("c_MovementId_25", 7); define ("c_MovementId_MovedIn", 9); define ("c_MovementId_Stop", 13);
Aktivieren eines Szenarios
IPSUtils_Include('IPSShadowing.inc.php', 'IPSLibrary::app::modules::IPSShadowing'); $scenarioManager = new IPSShadowing_ScenarioManager(); $scenarioManager->Activate(12345);
12345 ist die jeweilige ID des Szenarios, diese findet man unter „Program.IPSLibrary.data.modules.IPSShadowing.Scenarios“
Einbinden von Sensoren über Events
Um einen Sensor per Event anzubinden und so bei Änderung des Sensorwertes ein unmittelbares Auslösen der Beschattung zu realisieren (Vorteilhaft zB bei einem Regensensor, der die Markise einfährt), braucht man nur ein Event auf die entsprechende Variable definieren und als EventScript das Script unter „Program.IPSLibrary.app.modules.IPSShadowing.IPSShadowing_ProgramTimer“ definieren.
Manuelles Ein- und Ausschalten der Automatik
Manuelle Ansteuerung der Automatik geht folgendermaßen (siehe auch IPSShadowing_ChangeSettings.ips.php):
IPSUtils_Include ("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing"); $device = new IPSShadowing_Device(12345); $device->ChangeSetting(67890, true);
- 12345 ist die ID des Beschattungselementes, zu finden unter „Program.IPSLibrary.data.modules.IPSShadowing.Devices“
- 67890 ist die ID der Varaible mit Namen „Automatic“
Analog kann man auch andere Parameter des Beschattungselementes ändern (Profile, Programme, …).
Rücksetzen des Flags zur manuellen Ansteuerung
Analog zum Ein-/Ausschalten der Automatik kann man auch das Flag zur manuellen Ansteuerung zurücksetzen. Dieses wird ja bei einer manuellen Ansteuerung eines Beschattungselementes gesetzt um eine Übersteuerung durch die Automatik zu verhindern.
IPSUtils_Include ("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing"); $device = new IPSShadowing_Device(12345); $device->ChangeSetting(67890, true);
- 12345 ist die ID des Beschattungselementes, zu finden unter „Program.IPSLibrary.data.modules.IPSShadowing.Devices“
- 67890 ist die ID der Varaible mit Namen „ManualChange“