Problem: IPSShadowing LCN Jalousien fahren nicht alle im Programm Modus

Hallo zusammen,

ich mache hier mal einen eigenen Thread auf, damit es übersichtlich bleibt.

Ich verwende IPSShadowing aus der IPS Library.
Nach einigen Anpassungen habe ich es nun auch hinbekommen, dass alle Jalousien fahren.
Ich betreibe die Jalousien alle mit LCN sowohl an Relais Blöcken wie auch an Ausgängen einen SH Moduls.

Einzeln fahren auch alle Jalousien über das WebFrontEnd.
Im Programm Modus kommt es aber vor, dass regelmäßig ein bis Zwei Jalousien vergessen werden. Hier ist auch kein Muster nachvollziehbar. Mal ist es die erste Jalousie, mal willkürlich ein oder zwei andere.

Irgendwo habe ich jetzt schon gelesen, dass ggfs. der LCN Bus überlastet ist?!?!?
Zugriff auf den LCN Bus erfolgt über LinHK auf einer Fritzbox7170.

Jalousien sind mit folgenden Paramtern eingebunden in IPSShadowing_Configuration

			
c_ShadowingDevice_1 =>	array(
				c_Property_ShadowingType	=> c_ShadowingType_Shutter,
				c_Property_Name				=> 'EG Wohnen Süd',
				c_Property_Component		=> 'IPSComponentShutter_LCN,53633,17991',
				c_Property_TimeOpening		=> 28,
				c_Property_TimeClosing		=> 28,
				c_Property_TimePause		=> 1,
				c_Property_TempSensorIndoor	=> '',
				),

Ich habe auch schon versucht in der IPSShadowing_Custom ein Delay einzufügen (war hier im Forum irgendwo ein Tip) Leider ohne Erfolg


	function IPSShadowing_BeforeActivateShutter($deviceId, $command) {
        $delay[16305] = 2;  
        $delay[50919] = 2;

        sleep($delay[$deviceId]);  
		return true;

Zuvor hatte ich es via IPSComponentShutter_IPSShutterControl Modul Anbindung versucht. Gleiches Fehlerbild
Konfiguriert sind aktuell 16 Jalousien.

Hoffe Ihr habt Ideen für mich.

Vielen Dank,
Stefan

Hallo zusammen,

nachdem ich hier leider noch keine Rückmeldung erhalten habe, habe ich natürlich am Wochenende fleißig weiter herum probiert. Soweit das die Nachbarn irgendwann angerufen haben, und fragten ob unsere Jalousie Steuerung defekt wäre, da diese andauernd rauf und runter fuhren :frowning:

Es bleibt dabei: Es ist vollkommen willkürlich und nicht reproduzierbar, welche Jalousie vergessen wird.
Dazu habe ich mir dann auch mal die einzelnen Relais und Ausgänge der Jalousien visualisiert. Es ist tatsächlich so, dass die Relais / Ausgänge nicht geschaltet werden, auch wenn der Log im IPSShadowing sagt, dass alles ordnungsgemäß ausgeführt wird.

Eine Überlegung die mich momentan umher treibt ist die, dass wenn der Befehl aufgrund von Überlast nicht vom LCN Bus entgegen genommen wird, ich ihn einfach nochmal sende. Ist dann zwar nicht die sauberste Lösung aber ein Ansatz…
Ich würde mir das so vorstellen, dass ich nach dem ersten Absetzen des Befehls durch IPSShadowing überprüfe, ob das jeweilige Richtungsrelais den Status EIN oder 1 für hoch und AUS oder 0 für herunterfahren hat.

Dazu habe ich mir die IPSComponentShutter_LCN mal angesehen.

Hierhin werden die Relais ID´s scheinbar in die Paramter „instanceId1“ und „instanceID2“ übergeben.

Könnte man hier in den Sektionen MoveUp und MoveDown nicht diese Abfrage einbringen? Also hat das Richtungsrelais den richtigen Zustand (bei auf = EIN und bei ab gleich AUS)… Das sicherheitshalber in einer Schleife von max 5 Versuchen.
Sollte das RIchtungsrelais den passenden Zustand haben, dann weiter… falls nein, dann bitte nochmal den Befehl absenden.

Case0 beschreibt in der IPSComponentShutter_LCN den Fall Jalousie an Ausgägen… Case2 den Fall für Jalousien am Relaisblock.

Leider verlassen mich hier meine Skripting Kenntnisse und ich habe keine Idee wie ich das relaisieren kann.
Bin für jeden Tip Dankbar.

VG,
Stefan

PS: Hier der Code für MoveUp… Die Anpassung für Move Down denke ich werde ich hinbekommen…


	public function MoveUp(){
			switch($this->unitType) {
				case 0:
				    LCN_SetIntensity($this->instanceId1,100,4);
		//			LCN_SetIntensity($this->instanceId2,0,);
					break;
				case 2:
					LCN_SwitchRelay($this->instanceId2, $this->directionSwitch); 
					LCN_SwitchRelay($this->instanceId1, true);
					break;
				default:
					throw new IPSComponentException('Unknown Unittype '.$this->unitType.' for LCN Device with ID='.$this->instanceId1);
			}
		}