Auf die Schnelle habe ich bei einem HM-Aktor die Anschlüsse für auf und ab vertauscht, und der Aktor ist nicht gerade gut zugänglich. Im Verzeichnis „D:\IP-Symcon\scripts\IPSLibrary\app\core\IPSComponent\IPSComponentShutter“ habe ich eine neue *IPSComponentShutter_HomematicReverse.class.php angelegt, den Inhalt der regulären Homematic.class.php genommen und in Zeile 37 $reverseControl=true geändert.
Ich bekomme immer die Fehlermeldung
Error: Class ‚IPSComponentShutter_HomematicReverse‘ not found.
muss ich die Klasse noch irgendwo registrieren?
nette Grüße
Sven
Guten Abend zusammen, ich möchte einen Fensterkontakt einbinden da ich gerne beim öffnen der Balkontür den Rollo automatisch hoch fahren und beim schließen die Automatik wieder setzten will.
Kann mir da jemand eine Hilfe geben? Muss ich das über ein Skript lösen? Wenn ja wie kann ich die Automatik beim schließen der Tür wieder setzten?
Danke schon mal für die Hilfe.
Guten Abend, das obige Problem habe ich mittlerweile erledigt.
Allerdings habe ich seit heute eine Markise und mir erschließt sich das Programm für die Anwesenheit nicht?
Im Wiki finde ich keine genaueren Infos darüber…Was genau macht das Programm?
In der Config habe ich eine Boolean angegeben die den Wert true liefert bei Anwesenheit aber es tut sich nix wenn ich im Programm z.B. auf 50% einstelle.
Kann mich bitte hier jemand Aufklären?
Vielen Dank
Halo,
ich habe eine Frage zu den Temperaturprofilen für die Beschattung.
Kann ich die Werte dafür in den Variablenprofilen anpassen, damit die Steuerung andere Werte verwendet. Ich würde gerne den Wert für innen kleiner einstellen können, also nicht erst bei innen >=22° sondern schon bei 21°
Ein Nachteil ist vermutlich, dass das Variablenprofil bei einer Aktualisierung überschrieben wird, oder?
ich hätte noch einen Change Request.
Als es die Tage so heiß war, habe ich festgestellt, dass die Rollläden morgens bereits um kurz nach 7 auf 75% hoch gefahren sind (Temperaturprogramm), obwohl diese zu 100% geschlossen waren. Aus meiner Sicht macht es keinen Sinn, dass das Temperaturprogramm an dieser Stelle aktiv wird. Die Rollläden dürfen sich nur bewegen, wenn die aktuelle Position < Temperatur-Position ist.
Ich könnte das jetzt natürlich übersteuern, fände es aber besser, wenn es in den Standard mit rein käme.
Drei meiner Rohrmotoren haben den Geist aufgegeben. Nun habe ich diese gegen neue Motoren ausgetauscht. Leider sind die original verbauten Motoren nicht mehr lieferbar, sondern nur noch die Folgemodelle. Diese haben jetzt aber einen Softanlauf, d.h. die ersten 10cm fährt der Motor langsamer als den restlichen Weg. Somit passt die prozentuale Zuordnung überhaupt nicht zur rellen Position. Wenn ich nun dies durch „Manipulation“ der Fahrzeit ausgleiche, fährt der Motor, je nachdem ob er von oben kommt oder von unten, bei gleicher prozentualer Einstellung eine völlig andere Position an.
Wäre es möglich, zusätzlich zur momentanen Berechnung der Fahrzeit, noch eine Möglichkeit integrieren, die Fahrzeit der prozentualen Position zuzuordenen. Zum Beispiel:
da ich meine Rolladen schon prozentgenau anfahren kann (über LCN-Komponenten) - gibt es eine Möglichkeit, diese Methode in dieses tolle Modul einzubauen ? Wahrscheinlich müsste man dazu ja eine Funktion zum Anfahren wohl ändern - aber das finde ich nicht… oder strickt man das bei den custom-Funktionen rein ? (BeforeActivateShutter)
Fahre ich häufiger den Rolladen rauf und runter, so stimmen die Positionen nicht mehr so richtig - meistens ergeben sich Abweichungen nach oben: D.h. die Visu denkt, der Rolladen ist höher als er eigentlich ist.
Das ist nicht so schlimm - bis man den Rolladen öffnen will: Führt man dann das Hochfahren aus, dann bleibt der Rolalden manchmal 10-20cm unten.
Kann man das Script dahingehend ändern, dass das Hochfahren zur Position 0 (und nur zu der Position) ein paar Sekunden länger dauert ?
zuerst einmal vielen Dank an alle, die ihre wertvolle Freizeit in die Entwicklung der tollen IPS-Module stecken.
Nun aber zu meinem Thema.
Wir haben neu gebaut und sämmtliche Fenster mit Raffstores versehen.
Die Ansteuerung erfolgt über Homematic-Jalousieaktoren (wired).
Nun habe ich mich soweit durchgewurschtelt um das IPSShadowing-Modul zu nutzen.
Hierbei ergeben sich nun aber noch folgende Probleme wo ich Eure Hilfe benötige:
Die Stellung der Lamellen bei der Beschattung ist, egal was ich bei „c_Property_TimeDimoutUp“ einstelle, immer wagerecht. (wenn ich von „Abdunkeln“ auf „Beschattung“ gehe, teilweise sogar negativ). Egal was ich bei c_Property_TimeDimoutUp eingebe.
Ist das ein Float-Wert oder kann ich hier nur auf eine Sekunde genau einstellen?
sehe ich das richtig, dass ich bei jeglicher Änderung an der IPSShadowing_Configuration und anschließender „Installation“ immer auch alle Masken wieder neu aufbauen muss weil sich die „baseID´s“ ändern?
ich habe da auch noch mal eine Frage. Ich nutze Digitalstrom Aktoren für meine Rollläden.
Um im Sinne von Digitalstrom zu bleiben, müsste ich meine Rollläden nicht über Zeit auf zB 25% fahren, sondern ich müsste als Instanz den dsRoom, also die Szene für den Raum verwenden.
Das habe ich derzeit auch so gemacht für offen und geschlossen funktioniert das so.
Ich habe dazu in IPSComponentShutter_digitalstrom folgendes eingetragen
public function MoveUp(){
//DS_ShutterMoveUp($this->instanceId);
DS_CallScene($this->instanceId,5);
}
/**
* @public
*
* Hinunterfahren der Beschattung
*/
public function MoveDown(){
//DS_ShutterMoveDown($this->instanceId);
DS_CallScene($this->instanceId,0);
}
Damit werden alle Rollläden des Raumes geöffnet oder geschlossen.
Was müsste ich nun tun, um alle Rollläden bei zB der Temperatursteuerung auf 25% zu fahren. Dies entspricht einem Aufruf der Szene 17
DS_CallScene($this->instanceId,17);
Als instanceID habe ich auch die Szenen angelegt, und nicht die einzelnen Rolläden.
Gibt es dazu eine Lösung, oder muss ich doch wieder die einzelnen Rollläden dafür anlegen.
Ich weiß nicht wer für IPSComponent zuständig ist, aber „IPSComponentShutter_Enocean“ müsste folgendermaßen angepasst werden, damit es wieder funktioniert:
<?
/**@addtogroup ipscomponent
* @{
*
*
* @file IPSComponentShutter_Enocean.class.php
* @author Andreas Brauneis
*
*
*/
/**
* @class IPSComponentShutter_Enocean
*
* Definiert ein IPSComponentShutter_Enocean Object, das ein IPSComponentShutter Object für Enocean implementiert.
*
* @author Andreas Brauneis
* @version
* Version 2.50.1, 31.01.2012<br/>
*/
IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter');
class IPSComponentShutter_Enocean extends IPSComponentShutter {
private $instanceId;
private $isRunningId;
/**
* @public
*
* Initialisierung eines IPSComponentShutter_Enocean Objektes
*
* @param integer $instanceId InstanceId des Enocean Devices
*/
public function __construct($instanceId) {
$this->instanceId = IPSUtil_ObjectIDByPath($instanceId);
$this->isRunningId = @IPS_GetObjectIDByIdent('runningMode', $this->instanceId);
if($this->isRunningId===false) {
$this->isRunningId = IPS_CreateVariable(1 /*Integer*/);
IPS_SetParent($this->isRunningId, $this->instanceId);
IPS_SetName($this->isRunningId, 'RunningMode');
IPS_SetIdent($this->isRunningId, 'runningMode');
IPS_SetInfo($this->isRunningId, "This Variable was created by Script IPSComponentShutter_Enocean");
}
}
/**
* @public
*
* Funktion liefert String IPSComponent Constructor String.
* String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
* wieder neu zu erzeugen.
*
* @return string Parameter String des IPSComponent Object
*/
public function GetComponentParams() {
return get_class($this).','.$this->instanceId;
}
/**
* @public
*
* Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event
* an das entsprechende Module zu leiten.
*
* @param integer $variable ID der auslösenden Variable
* @param string $value Wert der Variable
* @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll
*/
public function HandleEvent($variable, $value, IPSModuleShutter $module){
$name = IPS_GetName($variable);
throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
}
/**
* @public
*
* Hinauffahren der Beschattung
*/
public function MoveUp(){
if(!GetValue($this->isRunningId)) {
ENO_ShutterMoveUp($this->instanceId);
SetValue($this->isRunningId, 1);
}
}
/**
* @public
*
* Hinunterfahren der Beschattung
*/
public function MoveDown(){
if(!GetValue($this->isRunningId)) {
ENO_ShutterMoveDown($this->instanceId);
SetValue($this->isRunningId, 2);
}
}
/**
* @public
*
* Stop
*/
public function Stop() {
$running = GetValue($this->isRunningId);
if($running != 0) {
ENO_ShutterStop($this->instanceId);
SetValue($this->isRunningId, 0);
}
}
}
/** @}*/
?>
das Handling mit iSRunning kann dann eigentlich komplett raus - ode?
<?
/**@addtogroup ipscomponent
* @{
*
*
* @file IPSComponentShutter_Enocean.class.php
* @author Andreas Brauneis
*
*
*/
/**
* @class IPSComponentShutter_Enocean
*
* Definiert ein IPSComponentShutter_Enocean Object, das ein IPSComponentShutter Object für Enocean implementiert.
*
* @author Andreas Brauneis
* @version
* Version 2.50.1, 31.01.2012<br/>
*/
IPSUtils_Include ('IPSComponentShutter.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentShutter');
class IPSComponentShutter_Enocean extends IPSComponentShutter {
private $instanceId;
/**
* @public
*
* Initialisierung eines IPSComponentShutter_Enocean Objektes
*
* @param integer $instanceId InstanceId des Enocean Devices
*/
public function __construct($instanceId) {
$this->instanceId = IPSUtil_ObjectIDByPath($instanceId);
}
/**
* @public
*
* Funktion liefert String IPSComponent Constructor String.
* String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
* wieder neu zu erzeugen.
*
* @return string Parameter String des IPSComponent Object
*/
public function GetComponentParams() {
return get_class($this).','.$this->instanceId;
}
/**
* @public
*
* Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event
* an das entsprechende Module zu leiten.
*
* @param integer $variable ID der auslösenden Variable
* @param string $value Wert der Variable
* @param IPSModuleShutter $module Module Object an das das aufgetretene Event weitergeleitet werden soll
*/
public function HandleEvent($variable, $value, IPSModuleShutter $module){
$name = IPS_GetName($variable);
throw new IPSComponentException('Event Handling NOT supported for Variable '.$variable.'('.$name.')');
}
/**
* @public
*
* Hinauffahren der Beschattung
*/
public function MoveUp(){
ENO_ShutterMoveUp($this->instanceId);
}
/**
* @public
*
* Hinunterfahren der Beschattung
*/
public function MoveDown(){
ENO_ShutterMoveDown($this->instanceId);
}
/**
* @public
*
* Stop
*/
public function Stop() {
ENO_ShutterStop($this->instanceId);
}
}
/** @}*/
?>
aktuell gibt es da keine Möglichkeit, da die komplette Ansteuerung zeitgesteuert abläuft. Ein Umbau ist zwar sicher möglich, aber nicht ganz so einfach.
Bei dem Problem mit der Ansteuerung kannst Du Dich derzeit nur mit den Fahrzeiten spielen, zumindest bei meinen Homematic Aktoren klappt das ohne Probleme.