IPSShadowing - eine Beschattungssteuerung

Problem: ich habe 2 steuerscripte:
bei einem modul ist 1 hoch bei einem anderen bedeutet es runter. kann ich das bei dir einbauen?

aber sicher,

als DeviceType c_DeviceType_Custom angeben, danach kannst Du in der Procedure IPSShadowing_MoveByHardwareCustom im File IPSShadowing_Custom.ips.php Deine eigene Logik einbauen.

Könntest sogar die bestehenden Funktionen verwenden, sieht dann ungefähr so aus:


	function IPSShadowing_MoveByHardwareCustom($DeviceId, $DevicePath, $Command) {
      $DeviceName   = get_DeviceNameByDeviceId($DeviceId);
	  
      if ($DeviceName == 'Küche') {
	     if ($Command==c_MovementId_Up) {
			IPSShadowing_MoveByHardware1Wire($DeviceId, $DevicePath, c_MovementId_Down);
		 } elseif ($Command==c_MovementId_Down) {
			IPSShadowing_MoveByHardware1Wire($DeviceId, $DevicePath, c_MovementId_Up);
		 } else {
			IPSShadowing_MoveByHardware1Wire($DeviceId, $DevicePath, c_MovementId_Stop);
		 }
	  } else {
	     IPSShadowing_MoveByHardware1Wire($DeviceId, $DevicePath, $Command);
	  }
	}

Hallo Andreas,

mit der Installation von IPSShadowing und IPSLogger ist mein System merklich instabiler geworden und hat heute Morgen komplett gestanden - mehr als das habe ich nicht installiert und somit könnte eine Verbindung existieren. Ich denke das dies an der Interaktion mit dem ShutterControl Script und den FS20 RSU liegt und habe hier ja „Hardware nachschubseitig“ Abhilfe im Anflug.

Bis dahin würde ich gerne sowohl den Logger als auch das IPSShadowing Script zwar nicht deinstallieren, aber aus der Aktivität heraus nehmen.

Welche Scripte müssen dafür auf jeden Fall von der Ausführung ausgeschlossen werden ?

Oder empfiehlst Du eher eine komplette Deinstallation und Neuinstallation mit den HM Jalousie Komponenten ?

Gruss
B71

Tatsache :slight_smile:
mal mit einem getestet, installiert und Webfront Küche leer :frowning:
In der Übersicht alles i.O. konnte auch fahren.
Nu muß noch die Beschattung mit Rollläden gehen :slight_smile: nach Sonnenstand versteht sich :wink:

@muckel - WebFront leer - konnte gestern Abend das Problem auch mit dem WebFront Konfigurator nachstellen und habe einen Bug eröffnet, werd heute Abend aber mal einen kleinen Workaround basteln…

@B71 - was spricht das Log, wo ist es denn hängen geblieben …
ansonsten mal einfach alle Timer + Events löschen, das reicht eigentlich damit das Teil selbstständig nichts mehr tut. Werden bei der nächsten Installation wieder angelegt …

Danke, wenn ich nochmal von vorne installieren möchte, was muß alles gelöscht werde? ich denke bis auf scripte alles löschen. Auch im webfrontkonfigurator ?

Hallo Leute,

habe eine neue Version hochgeladen:

[ul]
[li]Unterstützung zusätzlicher Hardware
[/li][li]Callback Methoden
[/li][li]Bugfix - teilweise leere WebFront Kategorien wenn Inhalt des „WebFront“ Ordners gelöscht wird und eine Neuinstallation gestartet wurde
[/li][/ul]

Anpassung des WIKIs kann noch bis zum Wochenende dauern

… mit der neuen Version braucht man im WFC nichts mehr löschen, ansonsten bis auf Scripte alles.

Wie kann ich denn von einem externen script einen bestimmten Rollladen fahren?
Wie kann ich denn von einem externen script einen Automatikreset durchführen…Nachtrag:OK logisch !

Möchte gerne meine sonnenstandabhängige Beschattung weiter mit meinen Rollläden nutzen.

Kann man wenn alle Rollläden runter sollen, irgendwo ein 1-2 sekunden sleep einbauen? Wenn 13 1-wire module gleichzeitig angesprochen werden…dann kanns mal eng werden auf dem bus.

Habe mal das WIKI auf den aktuellen Stand gebracht…

@muckel
Manuelle Ansteuerung - siehe Wiki

Automatik Reset - siehe File IPSShadowing_AutomaticReset.ips.php

Verzögerung - verwende für jedes Device die Custom Prozedure und implementiere dort ein Sleep von einer Sekunde - das sollte reichen.

DeviceID = IDs im Objektbaum ?
Bischen kompliziert siehe meine Beschattung:

$num = array( 	'1' => '30767'.'10586'.'10567'.'Erker1',       //1. Shutterinstance, 2.Modus, 3.Position 4.Instancename
					'2' => '54357'.'13260'.'27449'.'Erker2',      
					'3' => '14501'.'12738'.'12791'.'Erker3',      
					'4' => '42137'.'38293'.'53452'.'Terrasse',
					'5' => '10981'.'50973'.'22207'.'Wohnzimmerfenster',
					'6' => '35194'.'33552'.'50459'.'Küche',       
					'7' => '35912'.'42009'.'54898'.'Gäste-WC',
					'8' => '13145'.'39414'.'18312'.'Badezimmer',
					'9' => '46916'.'17067'.'15646'.'Kind1 Erker',
					'10' => '11104'.'17474'.'46150'.'Kind1 Fenster',
					'11' => '14049'.'20395'.'40005'.'Kind2',
					'12' => '34550'.'38830'.'34759'.'Schlaf Erker',
					'13' => '47222'.'32730'.'25968'.'Schlaf Fenster');
if (array_key_exists($i, $num)) 
            {$Zahl = $num[$i];}
			$A=GetValueInteger(substr($Zahl,5,5)); //Modus
			$B=GetValueInteger(substr($Zahl,10,5));//Position
			//$B= (int)$b;
			$C=substr($Zahl,0,5);                  // InstanceID in String
			$Inst = (int)$C;         				  //Umwandeln in Integer-Instance ID
			$Name=Substr($Zahl,15,15);            //Name Instance
			//echo $Name." in Modus ".$A."
";
			//echo $Name." auf Position ".$B."%
";

			$Ostseite = array (  '6', '7', '8', '13' );
			$Suedostseite = array ( '1' );
			$Suedseite = array ( '2', '4', '9', '12' );
			$Suedwestseite = array ( '3' );
			$Westseite = array ( '5', '10', '11' );
         if (  in_array ( $i, $Ostseite ) ) {$azi1=90; $azi2=150;}
         if (  in_array ( $i, $Suedostseite ) ) {$azi1=93; $azi2=180;}
         if (  in_array ( $i, $Suedseite ) ) {$azi1=98; $azi2=238;}
         if (  in_array ( $i, $Suedwestseite ) ) {$azi1=150 ; $azi2=255;}
         if (  in_array ( $i, $Westseite ) ) {$azi1=185; $azi2=280;}
			echo $Name." Azimut1=".$azi1." Azimut2=".$azi2."
";
			

Was willst du jetzt damit sagen?

Gruss,
Christian

Naja:

include_once "IPSShadowing_Movement.ips.php";
	IPSShadowing_MoveByControl($ControlID, c_MovementId_Down);

damit soll mal laut Wiki auch aus einem anderen script bewegen können.
Könnte ich also prima in meine Sonnenbeschattung einfügen.
also eine ID des zu steuernden Moduls eintragen und fertig. Habe es aber bis heute noch nicht geschafft, einen Rollladen aus einem anderen Script zu bewegen.
Welche $ControlID muß da rein? Ich muß doch auch eine deviceID haben…ich blick da nicht durch.

die ControlId ist die ID „Movement“ des jeweiligen Beschattungs Devices.

Alternativ kann man auch über den „Namen“ arbeiten, indem man sich über die Funktion „get_DeviceIdByDeviceName“ die ID eines Devices holt und mit get_ControlId die ID der Variable - sieht dann für die Terrasse zB. so aus:


    include_once "IPSShadowing_Movement.ips.php";
    $ControlID = get_ControlId(c_Control_Movement, get_DeviceIdByDeviceName('Terrasse', c_ID_Devices));
    IPSShadowing_MoveByControl($ControlID, c_MovementId_Up);

Hallo Andreas,
Kann es eventuell sein, dass Du beim Aufbau Deines Scriptes den Level Zustand 0% als geschlossen definiert hast und 100% als geöffnet ?

Ich habe gerade meine Aktoren nach der Logik 0% = Rolladen ist komplett eingefahren und 100 % = Rolladen komplett ausgefahren eingebaut und bin nach der Installation des Skriptes in die Ituation gelaufen das Dein Skript bei komplett offenen Rolläden geschlossen anzeigt und beim schliessen hoch als Aktion anzeigt und umgekehrt ?

Lässt sich das an irgendeiner Stelle im Skript fixen ?
Hast Du irgendwo diesen Status, bzw. Das Verhalten darauf definiert ?

Gruss
Bernd

Hallo Bernd,

intern arbeitet die Steuerung jedenfalls nach dem Prinzip: 0% = offen und 100% = geschlossen.

Eventuell sind Deine Motoren auch nur verkehrt angeschlossen - welche Hardware verwendest Du denn?

Habe für FS20 bereits ein Beispiel gepostet wie man das korrigieren kann - ist analog für jede andere HW auch möglich

Hallo Andreas,

prinzipiell schon richtig aber die CCU sagt auch was Anderes.

Ist CCU auf 100% ist deine Beschattung auf 0%. Sollte halt einfach synchron laufen.

ja, ich weis - die CCU arbeitet intern anders. Ich hatte den Großteil der Steuerung bereits beschrieben bevor ich meine HM Teile bekam!

Außerdem ist es für mich persönlich jetzt noch logischer, dass
1.) 0% offen bedeutet und
2.) es im Sinne einer allgemeinen Beschattungssteuerung ohne Bedeutung ist, wie die Steuerung intern arbeitet - es gibt definierte Schnittstellen, die das auf die jeweilige HW anpassen.

ich werds aber totzdem mal geistig auf meine Liste der Dinge setzen, was ich in einer zukünftigen Version konfigurierbar machen könnte …

Hmmm…eigentlich bin ich mir sicher das alles soweit richtig ist.
Bei Aktor auf 0% sind meine Rolläden oben. Nur das Script steht auf 100% und zeigt halt die Richtung exakt invertiert an wenn der Aktor in Aktion ist.

Kannst Du mir auf die Füsse helfen wo Du die FS20 Invertierung gepostet hast ? Ich finde das hier in den zig Seiten gerade echt net.

Gruss
B71