Beschattung mit Eltako FSB61NP-230V - Hardware Instanz und IPSShadowing?

Hallo Andy,

ja gute Frage, dieses Problem muss ich auch noch lösen. Evtl kann da auch Andreas was zu sagen. Letzendlich könnte man bei Änderung der Variablen (hoch oder runter) ein Skript ausführen lassen. In dem Skript müsste man irgendwie an die Instanz der Klasse IPSComponentShutter_Enocean kommen die beim IPS Shadowing verwendet wird und entsprechend MoveUp(), MoveDown() oder Stop() gerufen werden.
Aber wie kommt man daran? Wenn ich was herausfinde, melde ich mich.

Gruß, Rico

@Rico

Sieh Dir mal die Implementierung für Homematic an, analog kann man das auch für EnOcean machen.

1.) Anpassen von IPSShadowing_Installation.ips.php
Hier muss man analog zu Homematic die Variable ermittlen, die die Position enthält und diese mit dem der Componente beim IPSMessageHandler registrieren. Hier wird ein dann ein Event angelegt, dass im Falle einer Änderung die Funktion HandleEvent aufruft.


		// Homematic
		if ($componentClass=='IPSComponentShutter_Homematic') {
			$instanceId = IPSUtil_ObjectIDByPath($componentParams[1]);
			$variableId = @IPS_GetObjectIDByName('LEVEL', $instanceId);
			if ($variableId===false) {
				$moduleManager->LogHandler()->Log('Variable with Name LEVEL could NOT be found for Homematic Instance='.$instanceId);
			} else {
				$moduleManager->LogHandler()->Log('Register OnChangeEvent vor Homematic Instance='.$instanceId);
				$messageHandler->RegisterOnChangeEvent($variableId, $component, 'IPSModuleShutter_IPSShadowing,');
			}
		} else {
			$moduleManager->LogHandler()->Log('Found Component '.$componentClass);
		}

2.) Anpassen von IPSComponentShutter_Enocean.class.php

Hier muss anhand der Positions Variable die IPSShadowing Position (0=open, 100=closed) ermittelt werden


		public function HandleEvent($variable, $value, IPSModuleShutter $module){
		   if ($this->reverseControl) {
				$module->SyncPosition(($value*100), $this);
			} else {
				$module->SyncPosition(100-($value*100), $this);
			}
		}

3.) Installation - fertig