IPSLight

Hallo,
wie bekomme ich es hin das die Variablen Aktualisiert werden wenn ich von Extern schalte?

'Kueche'           =>	array('Küche',         'Erdgeschoss,All', 'Switch', 'IPSComponentSwitch_Homematic,54363','L1',20),

Hallo Brownson!

Ich bin gerade dabei mich mit deinem IPSMessageHandler auseinanderzusetzen.
Erster Versuch mit IPSLight. Funktioniert, und das mit automatisierter Registrierung der Ereignisse.
Mein Kompliment: IPSLibrary einfach nur gigantisch.

Notwendige Änderungen für Ansteuerung für EIB/KNX:
IPSLight_Installation.ips.php - zusätzlicher Abschnitt für Identifikation der Hardware

		// Homematic
		if ($componentClass=='IPSComponntSwitch_Homematic') {
			$instanceId = IPSUtil_ObjectIDByPath($componentParams[1]);
			$variableId = @IPS_GetObjectIDByIdent('STATE', $instanceId);
			if ($variableId===false) {
				$moduleManager->LogHandler()->Log('Variable with Name STATE could NOT be found for Homematic Instance='.$instanceId);
			} else {
				$moduleManager->LogHandler()->Log('Register OnChangeEvent vor Homematic Instance='.$instanceId);
				$messageHandler->RegisterOnChangeEvent($variableId, $component, 'IPSModuleSwitch_IPSLight,');
			}
		} 
		// EIB
    elseif ($componentClass=='IPSComponentSwitch_EIB') {
			$instanceId = IPSUtil_ObjectIDByPath($componentParams[1]);
			$variableId = @IPS_GetObjectIDByIdent('Value', $instanceId);
			if ($variableId===false) {
				$moduleManager->LogHandler()->Log('Variable with Name Value could NOT be found for EIB Instance='.$instanceId);
			} else {
				$moduleManager->LogHandler()->Log('Register OnChangeEvent vor EIB Instance='.$instanceId);
				$messageHandler->RegisterOnChangeEvent($variableId, $component, 'IPSModuleSwitch_IPSLight,');
			}
		} else {
			//$moduleManager->LogHandler()->Log('Found Component '.$componentClass);
		}

IPSComponentSwitch_EIB.class.php - Fehlender Abschnitt für Erzeugung des IPSComponent Object.


		/**
		 * @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;
		}

Als nächstes folgt IPSComponentShutter_EIB. :smiley:

Gruß
Günter.

Hallo Günter,

sehr gut, habs ebenfalls eingepflegt.

Hast Du Dir eigentlich schon mal überlegt auch einen GIT Account anzulegen und die Library zu forken. Würde das mergen diverser Erweiterungen um einiges erleichtern.

So irgendwie hab ich das noch nicht hinbekommen.
Kann mir keiner ein Tip geben?

Keine Ahnung, aber bei mir hören die Homematic Zeilen nach der ID auf. L1, 20 ???

Gruß
Bruno

wenn ich von extern schalte wird ja die Variable State vom Aktor Küche auch aktualisiert aber nicht die Variable unter Ipslibrary-Data-Moduls-Ipslight-Switches-Küche

Keine Ahnung, aber bei mir hören die Homematic Zeilen nach der ID auf. L1, 20 ???

Gruß
Bruno

L1 = IPSLIGHT_POWERCIRCLE - Hier kann spezifiziert werden an welchem Stromkreis die Lampe angeschlossen ist.
20 = IPSLIGHT_POWERWATT - Spezifiert die maximale Leistung der Beleuchtung. Zusammen mit dem Parameter IPSLIGHT_POWERCIRCLE ist es nun möglich die aktuelle Leistung eines Stromkreises abzufragen.

also daran liegts nicht.

OK, gewonnen :wink:

Was ist die 54363 ?

Id 54363 ist der Aktor Küche siehe Anhang

K1 muss es sein, darunter die STATE-Variable, scheint aber so zu sein.

Ist beim „IPSMessageHandler_Event“ ein „OnChange_28194“ enthalten ? IPSLib…, app, core, IPSMessageHandler, … ?

nein ist nicht enthalten.

Ich habe keine Homematic Devices, aber ich rate mal:
Ist die Homematic-Shutter ID nicht 50512 anstatt 54363 - lt. deinem Anhang?

54363 hat als Child keine STATE Variable --> 50512 aber schon --> deswegen ist auch kein Eintrag in der MessageHandler_Config eingetragen worden.

Probier mal 50512 und danach ein erneutes Install.

LG

nein ist nicht enthalten

Das Problem liegt also am IPSMessageHandler, dort ist der Aktor nicht registriet, um Änderungen an IPSLight zurückzumelden.

Das sollte normalerweise bei der Installation registriert werden. Mögliche Ursache könnte sein, dass Du erst später die Components von Dummy auf Homematic geändert hast.
–> Ausführen der Installation sollte das Problem beheben.

Falls nicht, nochmals Config+MessageHandler posten …

Danke,
jetzt gehts.
hatte immer nur ein Update gemacht nach änderungen und dachte das reicht.
und wie geht das für Dimmer und RGB?

Dimmer und RGB hab ich noch nicht implementiert …

Hallo,
möchte gerne die Verbrauchswerte (Watt und KWh) der angelegten Switches in Variablen abspeichern und dann im nächsten Schritt mit IPSPowerControl auswerten. Könnte mir bitte jemand dafür mal auf die Sprünge helfen und ein Beispiel geben?

Grüße, Jürgen

Beschaeftige mich jetzt auch ein bisschen mit diesem Modul.
Moechte aber nicht nur EIN/AUS sondern auch fuer eine bestimmte Zeit.
zB: Licht einschalten fuer 5 Minuten.
Kann mir irgendwann geholfen werden :wink:

Wollte meine Frage nochmal hervorholen. Hat keiner eine Lösung dafür parat?

Hallo,

hat jemand schon mit dem Modul eine Anwesenheitssimulation, bzw das Abspielen eines bestimmten Tages realisiert?
Ich würde mich dann nämlich gerne an dei Anwesenheitssimulation dranhänge und nicht das Rad neu erfinden.

Gruss

gros_ibou

@Immergut

ich hab vor einiger Zeit mal dieses Script gebaut. Es macht exakt das was du möchtest.

Allerdings war das noch für eine frühe IPS Version. Glaube es haben ein paar Leute gesagt das es aktuell nicht mehr funktioniert.
Du müßtest es also ggfls. etwas anpassen.

gruß
bb

@Immergut

ich hab vor einiger Zeit mal dieses Script gebaut. Es macht exakt das was du möchtest.

Allerdings war das noch für eine frühe IPS Version. Glaube es haben ein paar Leute gesagt das es aktuell nicht mehr funktioniert.
Du müßtest es also ggfls. etwas anpassen.
Wenn du da was machst, sag bitte Bescheid. Dann passen wir die Doku an.

gruß
bb