IPSShadowing - eine Beschattungssteuerung

Nimm doch einfach „IPSShadowing_AfterActivateShutter“, die Funktion wird nach jedem Beschattungsvorgang ausgeführt.

Hallo Andreas,

jetzt da die Tage wieder länger werden wollte ich mich gerne mit den Tagesend - und ´-beginn Profilen beschäftigen.

Leider steige ich durch die Funktion Dämmerung (begrenzt) nicht durch…

Im Wiki steht das wie folgt beschrieben:
„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

Wo kann ich denn die vordefinierten Zeiten anpassen ?

IPSTwilight heißt das Modul wo Du das einstellen kannst. Das sollte bei Dir installiert sein, denn es ist Voraussetzung für die Beschattungssteuerung.

Da wäre ich nicht draufgekommen, dass das in diesem Modul und nicht im IPSShadowing zu ändern ist.

Hinweis im WIKI wäre fein, aber jetzt ists ja auch hier zu finden :slight_smile:

Danke.

Steht doch im Wiki unter „Voraussetzungen“

ja klar als Voraussetzung ist es genannt, nicht aber wo
„Dämmerung (begrenzt)“ geändert werden kann.

Sonst hätte ich das ja gefunden :wink:

Ganz im Notfall findet es auch die Google-Suche (ip-symcon dämmerung begrenzt) :wink:

Das ist wohl wahr :slight_smile: Was muss denn alles gelöscht werden? Nur die Skripte in der IPS Konsole oder auch wirklich die Dateien im Dateisystem?

Alles (zur Beschattung gehörende :wink: ) in bzw. über die Konsole.

Gruß
Bruno

Hallo,

mit dem Script:

<?

IPSUtils_Include ("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing");


IPS_Sleep(1000); //Warten

IF (GetValue(57072 /*[Hardware\Homematic\TFK Schlafen Tür\STATE]*/) == 2 ) //Geöffnet
  {
  $device = new IPSShadowing_Device(40948 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device2]*/);
  $device->MoveByControl(c_MovementId_Opened);
  }
ELSE
  {
  $profileManager = new IPSShadowing_ProfileManager();
  $profileManager->UpdateProfileInfos();

  $device = new IPSShadowing_Device(40948 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device2]*/);
  $device->ChangeSetting(11328 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device2\ManualChange]*/, false);
  $device->ChangeSetting(58171 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device2\Automatic]*/, true);
  $device->CheckPrograms($profileManager);
  }

?>

öffne ich den Rollladen wenn ich am Tür-Fenster-Drehgriff die Balkontür öffne.

Jetzt würde ich gerne an einem anderen Fenster, bei geöffnetem Fenster den Rollladen schliessen und bei gekipptem Fenster auf Beschattung fahren. In obigem Script bewirkt ja der Befehl:

  $device->MoveByControl(c_MovementId_Opened);

dass der Rollladen öffnet. „…Closed“ wird dann wahrscheinlich schliessen sein ???

Doch wie lautet die Syntax für Beschattungsposition ???

Gruß Proxima

 $device->MoveByControl(c_MovementId_Shadowing);  

Siehe auch Kapitel „Manuelle Ansteuerung“ im Wiki

Hallo,

funktioniert „…Shadowing“ auch mit dem Beschattungstyp „Rollo“ ???

Im WIKI ist „…Shadowing“ nur bei Beschattungstyp „Jalousie“ angegeben.

Gruß Proxima

Ich hab heute mal einen Regensensor in der Config eingebaut. Ich habe dazu meinen - mit einem SCI-3 umgebauten FS20 Sensor verwendet. Das Profil für die Bool Variable ist ~Raining.

Dieser wird auf der Oberfläche bei im Reiter „Wetter“ auch erkannt. Es zeigt aber immer „Kein Regen“ an, egal was der Sensor selbst anzeigt. Ist das richtig so oder sollte die Anzeige sich mit dem Wert des Sensors ändern (was ich vermuten würde)? Zumal die Markise auch nicht ein fährt wenn der Sensor Regen erkennt.

Ich habe dann auch noch mal eine eigene Bool Variable getriggert über den HM Sender ausprobiert aber auch hier gleiches Verhalten, es wird immer „kein Regen“ angezeigt.

Ich hab natürlich nach der Config Änderung das Modul neu installiert!

Meine Config:

<?

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

	define ("IPSSHADOWING_TEMPSENSORINDOOR",		"Geräte.Erdgeschoss.Wohnzimmer.Raumthermostat.Klima.Ist-Temperatur");

	define ("IPSSHADOWING_TEMPSENSOROUTDOOR",	"Wetterstation.WMR88_Klima_Außen.Temperatur");

	define ("IPSSHADOWING_BRIGHTNESSSENSOR",	'');

	define ("IPSSHADOWING_RAINSENSOR",		"Program.Räume.Draußen.Hinterhof.Data.Regen");

	define ("IPSSHADOWING_WINDSENSOR",		"Wetterstation.WMR88_Windsensor.Windgeschwindigkeit");

	define ("IPSSHADOWING_PRESENT",			'Program.Status.Data.Anwesend');

	define ("IPSSHADOWING_ABSENCE",			"");

	define ("IPSSHADOWING_TWILIGHTSUNRISE",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBegin");

	define ("IPSSHADOWING_TWILIGHTSUNSET",			"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEnd");
	
	define ("IPSSHADOWING_TWILIGHTSUNRISELIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseBeginLimited");

	define ("IPSSHADOWING_TWILIGHTSUNSETLIMITED",	"Program.IPSLibrary.data.modules.Weather.IPSTwilight.Values.SunriseEndLimited");

	define ('IPSSHADOWING_LATITUDE', IPSTWILIGHT_LATITUDE);

	define ('IPSSHADOWING_LONGITUDE', IPSTWILIGHT_LONGITUDE);

	define ('IPSSHADOWING_BUILDINGORIENTATION',   -15);
	
	define ('IPSSHADOWING_BUILDINGRELATION',      -10);
	
	define ("IPSSHADOWING_LOGMESSAGECOUNT",				30);

	function get_ShadowingConfiguration() {
		return array(
			c_ShadowingDevice_1 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Shutter,
				c_Property_Name				=> 'Wirtschaftsraum',
				c_Property_Component		=> 'IPSComponentShutter_Homematic,30436',
				c_Property_TimeOpening		=> 	34,
				c_Property_TimeClosing		=> 	31,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor	=> '',
				),
			c_ShadowingDevice_2 =>	array(
				c_Property_ShadowingType	=> 	c_ShadowingType_Marquees,
				c_Property_Name				=> 'Markise',
				c_Property_Component		=> 'IPSComponentShutter_Homematic,13846',
				c_Property_TimeOpening		=> 	30,
				c_Property_TimeClosing		=> 	30,
				c_Property_TimePause		=> 	1,
				c_Property_TempSensorIndoor => '',
				),
	   );
	}
	/** @}*/
?>

OK, habs im Wiki gefunden. Muss mir das dann mal näher ansehen!

Aber irgendwie kann ich mir darunter nicht so viel vorstellen:

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.

OK, das Event hab ich. Ein Skript im Pfad kann ich auch anlegen aber was muss das Skript machen? Kann ich damit das Wetter Profil so beeinflussen, dass es direkt anspricht und die Markise direkt eingefahren wird?

Sieh mal unter „Einbinden von Sensoren über Events“
http://www.ip-symcon.de/wiki/IPSShadowing#Einbinden_von_Sensoren_.C3.BCber_Events

Hallo,

Wie stelle ich es bei einer Markise an, die bei Regen ODER Wind zufahren sollte?

Wenn ich beim Wetterprofil beides angebe, ists ja mit UND verknüpft, also das Profil ist nur aktiv wenn Regen UND Wind.
und 2 Profile kann ich ja für die Markise nicht angeben oder habe ich a was übersehen?

lg,
Christian.

Ja genau das ist das Problem, ich hab den Teil gefunden und gelesen aber nicht ganz verstanden. Wie stelle ich es in dem Skript dann an, dass das Profil direkt aktiv wird?

Das Skript IPSShadowing_ProgramTimer wird alle 5 Minuten zyklisch aufgerufen.
Ausgeloestes Ereignis hinzufuegen ,bei Variablenaenderung Regensensor.

Ja super, das war der Knackpunkt der mir gefehlt hat. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr :slight_smile:

Hallo Zusammen,
wie kann ich bspw. in IPSShadowing_BeforeActivateShutter() die „c_Property_Component“ der aktuellen $deviceId ermitteln?

Ich habe aktuell in „IPSLibrary\app\modules\IPSShadowing\IPSShadowing_Device.class.php“ die Funktion „GetPropertyValue()“ als public deklariert.
Geht das auch mit vorhandenen Mitteln, ohne den Sourcecode zu ändern?