IPSShadowing - eine Beschattungssteuerung

@Brownson/Andreas
Kannst Du mir hierzu noch einen Tipp geben?
Das Problem (Differenzen in Temp-Profilen) besteht noch immer.

Hast Du noch immer eine AccessViolation?

Kannst Du mir mal die Logs vom Update posten (log Verzeichnis, IPS+ModuleManager, siehe Datum)

… ich sehe mal davon ab das komplette Log hier rein zu kopieren (mache ich gerne wenn gewünscht).
Ich denke ich mal wichtig ist:

29.08.2013 13:43:11.252 | 0 | CUSTOM | IPSFileVersionHandler | Set Version IPSShadowing=2.50.3 (Installed)
29.08.2013 13:43:11.254 | 45802 | DEBUG | VariableManager | [Program\IPSLibrary\data\modules\IPSModuleManagerGUI\HTML] = <iframe frameborder=„0“ width=„100%“ height=„600px“ src="…/user/IPSModuleManagerGUI/IPSModuleManagerGUI.php"</iframe>
29.08.2013 13:43:11.256 | 0 | DEBUG | ExecuteThreadID #2 | Ausgeführt, Resultat: 1, Erfolgreich: True, Zeit: 17006 ms
29.08.2013 13:43:12.429 | 0 | ERROR | ScriptEngine | FunctionName: WFC_GetSnapshot, ThreadID: 4692, CrashReport: Access violation at address 00601B7B in module ‚ips.exe‘. Read of address 00000000
29.08.2013 13:43:12.475 | 0 | ERROR | ScriptEngine | FunctionName: WFC_GetSnapshot, ThreadID: 4036, CrashReport: Access violation at address 00601B7B in module ‚ips.exe‘. Read of address 00000000

Hallo,

ich habe das script mal probiert und es ist etwas mehr stabiel aber er fahrt nog imer ubertagh nag oben, had jemand ein tip un ein erzugerung ein zu bouwen?

danke, Ron

Hallo leute ich stehe komplett auf dem schlauch…

Habe mir heute zwei neue Homematic Funk-Jalousieaktoren 1 fach für Markenschalter gekauft.

Ich schaffe es einfach nicht diese in IPS_shadowing zu integrieren.

Es währe sehr nett von euch wenn mir jemand das (Einsteigerfreundlich) erklären könnte.

mfg

Hallo Andreas,
wollte Heute dieses Skript auch mal ausprobieren. Erhalte jedoch bei der Installation immer nachfolgenden Fehler.
Hast du eine Idee woran es scheitern bzw. wie ich den Installationsfehler beheben könnte?

@Brovning

MessageHandler auf den aktuellen Stand bringen

@badfrog18

Neue Devices im Config File eintragen und Installation über die GUI starten

Sollte aktuell sein (siehe Anhang).
Hast du noch einen Tipp?

Hallo Andreas,
hast du noch eine Idee, was ich versuchen könnte?
Bin ratlos… :confused:

Kommt dieselbe Fehlermeldung wenn Du die Installation nochmals startest (kann ich mir irgendwie nicht vorstellen).
Hast Du die Installation von IPSShadowing überhaupt erneut gestartet?

Hallo,

ich habe 17 Homematic Rollladenaktoren welche ich mit IPSShadowing betreibe. Zusätzlich kann jeder Rollladenaktor mittels verdrahtetem Doppeltaster (in der Homematic WebUI als Direktverknüpfung angelernt) direkt bedient werden.

Wenn ich aber mittels Taster einen Rollladen fahre, wird der aktuelle Zustand in IPSShadowing nicht synchronisiert. Das sollte doch aber so sein, oder ??? Also wenn der Rollladen mittels Taster ganz zu gefahren ist, sollte doch auch der Status in IPSShadowing „GESCHLOSSEN“ melden, oder ???

Gruß Proxima

Hallo Andreas,
nachdem ich die Installation starte, erscheint die Fehlermeldung und der Status „Installing…“. Der Status ändert sich nicht mehr. Wenn ich erneut auf Installieren klicke erscheint die Fehlermeldung erneut. Auch wenn ich IPSShadowing zuerst lösche, neu herunterlade und anschließend wieder auf „Installieren“ klicke, erscheint die Fehlermeldung erneut.

Jetzt habe ich den IPSMessageHandler gelöscht und IPSShadowing gelöscht. Zuerst IPSShadowing zu installieren klappt logischerweise nicht, da IPSMessageHandler benötigt wird. Also zuerst IPSMessageHandler installiert und dann IPSShadowing und es klappte.

Zusammenfassung: Die Installation klappte erst, als ich sowohl IPSMessageHandler und IPSShadowing gelöscht und neu heruntergeladen hatte.

Keine Ahnung warum, aber jetzt scheint die Installation geklappt zu haben.

Hallo Andreas,
habe leider schon wieder ein eigenartiges Problem.
Wie im Anhang zu sehen, werden unter Übersicht die Konfigurierten Rollos angezeigt. Jedoch unter Szenarien wird auch noch die Default-Config angezeigt.
Wie kann ich diese dort löschen?

Szenario auswählen (wenn mehrere) und löschen

Gruß
Bruno

Hallo Bruno,
vielen Dank für deinen Tipp!
Das brachte jedoch auch nicht den gewünschten Erfolg. Siehe Anhang mit Editiermodus An/Aus.

Dann stimmt was mit Deiner Installation nicht, da sind die falschen (vielleicht alte Installation, … wasauchimmer) Variablen im Skript.

Häng mal die config-Datei an, vielleicht sieht man was.

Hallo,
die Konfiguration findest du nachfolgend:

<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */    

	/**@defgroup ipsshadowing_configuration IPSShadowing Konfiguration
	 * @ingroup ipsshadowing
	 * @{
	 *
	 * @file          IPSShadowing_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *  Version 2.50.1, 19.03.2012<br/>
	 *
	 * Konfigurations File für IPSShadowing
	 *
	 */

	IPSUtils_Include ("IPSShadowing_Constants.inc.php",      "IPSLibrary::app::modules::IPSShadowing");
	IPSUtils_Include ("IPSTwilight_Configuration.inc.php",   "IPSLibrary::config::modules::Weather::IPSTwilight");

	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_PRESENT",			27608 /*[Fenster und Türen\Core\Rolladen\Anwesend]*/);

	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_ABSENCE",			'');

	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNRISE",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilBegin");

	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNSET",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilEnd");
	
	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNRISELIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilBeginLimited");

	/** 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_TWILIGHTSUNSETLIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.CivilEndLimited");

	/**
	 * Angabe des Breitengrades zur Berechnung des Sonnenstandes
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE);

	/**
	* Angabe des Längengrades zur Berechnung des Sonnenstandes
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	*/
	define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE);

	/**
	 * Ausrichtung des Gebäudes
	 * 
	 * Dieser Wert spezifiziert die Abweichung von der Ausrichtung des Gebäudes Richtung Süden in Grad.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_BUILDINGORIENTATION',   -19	);
	
	/**
	 * 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.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ('IPSSHADOWING_BUILDINGRELATION',      7);
	

	/**
	 * Definiert die Anzahl der Meldungen, die im Applikation Logging Window angezeigt werden.
	 *
	 * Dieser Parameter kann jederzeit geändert werden, keine Installation erforderlich.
	 */
	define ("IPSSHADOWING_LOGMESSAGECOUNT",				30);

	/**
	 *
	 * Definition der Beschattungs Elemente
	 * Die Konfiguration erfolgt in Form eines Arrays, für jedes Beschattungs Device wird ein Eintrag im Array erzeugt.
	 * 
	 * 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:
	 * @code
        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  => '',
             ));
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit Beschattungs Elementen
	 */
	function get_ShadowingConfiguration() {
		return array(
			c_ShadowingDevice_1 =>	array(
				c_Property_ShadowingType	=>		c_ShadowingType_Shutter,
				c_Property_Name				=> 'Büro',
				c_Property_Component		=> 'IPSComponentShutter_EIB,15303',
				c_Property_TimeOpening		=> 20,
				c_Property_TimeClosing		=> 20,
				c_Property_TimePause		=> 1,
				c_Property_TempSensorIndoor	=> '',
				),
			c_ShadowingDevice_2 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'WZ Tür',
				c_Property_Component		=> 'IPSComponentShutter_EIB,39908',
				c_Property_TimeOpening		=> 	30,
				c_Property_TimeClosing		=> 	30,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '',
				),
			c_ShadowingDevice_3 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'WZ Fenster',
				c_Property_Component		=> 'IPSComponentShutter_EIB,14269',
				c_Property_TimeOpening		=> 	20,
				c_Property_TimeClosing		=> 	20,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor => '',
				),
	   );
	}
	/** @}*/
?>

EDIT:
Ich habe es jetzt mal auf die harte Tour gemacht und unter Beschattugnselemente die unerwünschten Links gelöscht. Nun scheint es zumindest vorerst zu funktionieren.

Hallo Zusammen,
ein kurzes Feedback:
Das manuelle Löschen der Links hat geholfen. Diese bleiben gelöscht und werden auch bei einer Neuinstallation nicht mehr angelegt.

Ich hätte noch eine Verständnisfrage zur Anwesenheit/Abwesenheit:

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“, „“);

Muss man beide Variablen definieren oder ist eine von beiden ausreichend und IPSShadowing schließt auf das Gegenteil?

Könntet ihr mir bitte kurz die Bedeutung der Werte für „Programm Anwesend“ erläutern?

Ich möchte beispielsweise, dass morgens der Rollo im Schlafzimmer nur automatisch öffnet, wenn ich nicht Anwesend bin. Praktisch eine Abwesenheitssteuerung. Abends soll der Rollo jedoch immer automatisch schließen.
Beispielsweise im Wohnzimmer und Büro soll der Rollo sowohl abends, als auch morgens automatisch fahren.
Was müsste ich in diesen beiden Fällen bei „Programm Anwesend“ konfigurieren?

Einer der beiden Konfigurations Parameter muss gesetzt sein.

Das Anwesenheits Programm habe ich primär implementiert, um zu verhindern, dass eine Beschattung eine Tür versperrt wenn man gerade zu Hause ist. Das was Du machen willst, wird so direkt noch nicht supportet (werds mal geistig als mögliches neues Feature notieren).

Du kannst das aber über die Callback Funktion lösen, ich glaub da müsste es schon einige ähnliche Beiträge dazu geben …

Hallo,
ja danke, habe schon herausgefunden, dass das so nicht klappen wird.

Ich hätte ohnehin hier irgendwie basteln müssen, da ich beim automatischen Schließen der Rollos nur die Rollos schließen will, bei denen die Fenster nicht offen sind. Bei einer geöffneten Balkontür beispielsweise soll der Rollo geöffnet bleiben, da die Wahrscheinlichkeit hoch ist, dass ich dabei ausgesperrt werde. Zudem wollte ich, dass bei gekippten Fenster der Rollo nur auf 80% fährt. Nach Bewegen des Fenstergriffes soll der Rollo natürlich angepasst werden (bei Fenster kippen = fahren auf 80%, bei Fenster schließen = Rollo schließen und bei Fenster öffnen = Rollo öffnen).
Da ich einen KNX-Rollladenaktor mit Fahren in Position und automatischer Fahrzeitermittlung habe, habe ich mir für das automatische Schließen und Öffnen ein eigenes Skript geschrieben, welches über IPSTwilight angestoßen wird. Ging ja dank dem Rollladenaktor sehr einfach.

Nur für die Beschattung nutze ich weiterhin IPSShadowing.