IPSLight

Event auf die Homematic Variable anlegen und darin den Wert nach IPSLight synchronisieren:


    IPSUtils_Include ('IPSLight.inc.php', 'IPSLibrary::app::modules::IPSLight');

    $lightManager = new IPSLight_Manager();
    $lightManager->SynchronizeSwitch($deviceIdent, $state);

$deviceIdent ist der Name aus dem ConfigFile
$state ist der Status der Beleuchtung (true oder false)

analog kannst Du auch mal den Sync des Dimmerwertes versuchen:


    IPSUtils_Include ('IPSLight.inc.php', 'IPSLibrary::app::modules::IPSLight');

    $lightManager = new IPSLight_Manager();
    $lightManager->SynchronizeDimmer($deviceIdent, $state, $level);

Vielen Dank Andreas hat funktioniert.
Mfg Stefan

Hallo zusammen,

kann ich das Modul IPSLight auch mit einer Wago/Tastern verwenden. Im Moment sende ich bei einem Tastendruck in IPSymcon einen ModbusWriteCoil (TRUE) und danach einen ModbusWriteCoil (False) zu meiner Wago.

Kann ich dies auch in der IPSLight implementieren?

Gruß und Danke im Voraus

Georg

Hallo,

ich habe mich jetzt mal daran gemacht IPSLight zu installieren. Jedoch laufe ich immer in einen Fehler, der mir leider nicht als Fehler angezeigt wird, sodass ich nicht weiß, woran es liegen könnte. Wenn ich im WebFront auf die Glühlampe (IPSLight Ansicht) gehe, ist dort kein Inhalt zu sehen. Das wundert mich gar nicht, da auch im Objektbaum die Kategorie leer ist. Hat jemand so ein Verhalten schon einmal beobachten können?

Hier meine Konfiguration:


<?
	/*
	 * This file is part of the IPSLibrary.
	 *
	 * The IPSLibrary is free software: you can redistribute it and/or modify
	 * it under the terms of the GNU General Public License as published
	 * by the Free Software Foundation, either version 3 of the License, or
	 * (at your option) any later version.
	 *
	 * The IPSLibrary is distributed in the hope that it will be useful,
	 * but WITHOUT ANY WARRANTY; without even the implied warranty of
	 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	 * GNU General Public License for more details.
	 *
	 * You should have received a copy of the GNU General Public License
	 * along with the IPSLibrary. If not, see http://www.gnu.org/licenses/gpl.txt.
	 */

	/**@defgroup ipslight_configuration IPSLight Konfiguration
	 * @ingroup ipslight
	 * @{
	 *
	 * @file          IPSLight_Configuration.inc.php
	 * @author        Andreas Brauneis
	 * @version
	 *  Version 2.50.1, 26.07.2012<br/>
	 *
	 * Konfigurations File für IPSLight
	 *
	 */

	/**
	 *
	 * Definition der Beleuchtungs Elemente
	 *
	 * Die Konfiguration erfolgt in Form eines Arrays, für jedes Beleuchtungselement wird ein Eintrag im Array erzeugt.
	 *
	 * Für jedes Beleuchtungselement werden dann die Eigenschaften in einem gesonderten Array hinterlegt:
	 *
	 * IPSLIGHT_NAME  - spezifiziert den Namen der Beleuchtung in der GUI, Änderungen an dieser Eigenschaft werden erst nach einem
	 *                  erneuten Ausführen der Installationsprozedur sichtbar.
	 *
	 * IPSLIGHT_GROUP - beinhaltet eine Liste aller Gruppen, der das Beleuchtungselement zugeordnet ist. Diese Eigenschaft kann
	 *                  jederzeit geändert werden (vorausgesetzt die Gruppe ist bereits definiert, siehe weiter unten).
	 *
	 * IPSLIGHT_TYPE  - spezifiziert den Type der Beleuchtung, zur Zeit werden 3 Beleuchtungstypen unterstützt:
	 *    - IPSLIGHT_TYPE_SWITCH:  Normale Beleuchtung mit Ein/Aus Funktionalität
	 *    - IPSLIGHT_TYPE_RGB:     RGB Beleuchtung
	 *    - IPSLIGHT_TYPE_DIMMER:  Dimmbare Beleuchtung
	 *                  Änderungen an diesem Parameter erfordern ein Ausführen der Installations Prozedure.
	 *
	 * IPSLIGHT_COMPONENT - dieser Eintrag spezifiziert die Hardware, die Angabe des Component Strings muss mit dem spezifizierten
	 *                      Beleuchtungstypen (siehe oben) zusammenpassen (Type Dimmer benötigt zB eine Klasse IPSComponentDimmer).
	 *
	 * IPSLIGHT_POWERCIRCLE - Hier kann spezifiziert werden an welchem Stromkreis die Lampe angeschlossen ist. Dieser Parameter ist
	 *                        optional.
	 *
	 * 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. Details siehe auch im WIKI.
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSLight_GetLightConfiguration() {
          return array(
            'Kueche'  =>  array(
               IPSLIGHT_NAME            => 'Küche',
               IPSLIGHT_GROUPS          => 'Erdgeschoss,All',
               IPSLIGHT_TYPE            => IPSLIGHT_TYPE_SWITCH',
               IPSLIGHT_COMPONENT       => 'IPSComponentSwitch_Homematic,12345',
               IPSLIGHT_POWERCIRCLE     => 1,
               IPSLIGHT_POWERWATT       => 60),
            'Ambiente'  =>  array(
               IPSLIGHT_NAME            => 'Ambiente',
               IPSLIGHT_GROUPS          => 'Erdgeschoss,All',
               IPSLIGHT_TYPE            => IPSLIGHT_TYPE_RGB,
               IPSLIGHT_COMPONENT       => 'IPSComponentRGB_IPS868,12345'),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit Beleuchtungs Elementen
	 */
	function IPSLight_GetLightConfiguration() {
		return array(
			'Wohnzimmer'       =>	array('Wintergarten', 'Erdgeschoss,All', IPSLIGHT_TYPE_DIMMER, 'IPSComponentDimmer_Homematic,59961'),
			'Schlafzimmer'     =>	array('Schlafzimmer', 'Erdgeschoss,All', IPSLIGHT_TYPE_DIMMER, 'IPSComponentDimmer_Homematic,39118'),
			'Garage'           =>	array('Garage',       'Garage',          IPSLIGHT_TYPE_SWITCH, 'IPSComponentSwitch_Homematic,13966'),
			'Draussen'          =>	array('Draussen',      'Draussen, All',    IPSLIGHT_TYPE_SWITCH, 'IPSComponentSwitch_Homematic,21605')
		);
	}


	/**
	 *
	 * Definition der Beleuchtungs Gruppen
	 *
	 * Die Konfiguration erfolgt in Form eines Arrays, für jede Beleuchtungsgruppe wird ein Eintrag im Array erzeugt.
	 *
	 * Für jede Beleuchtungsgruppe werden dann die Eigenschaften in einem gesonderten Array hinterlegt:
	 *
	 * IPSLIGHT_NAME  - spezifiziert den Namen der Gruppe in der GUI, Änderungen an dieser Eigenschaft werden erst nach einem
	 *                  erneuten Ausführen der Installationsprozedur sichtbar.
	 *
	 * IPSLIGHT_ACTIVATABLE - gibt an, ob die Gruppe über die GUI eingeschaltet werden kann
	 *
	 * Eine Liste mit diversen Beispiel Konfigurationen findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSLight_GetGroupConfiguration() {
          return array(
            'All'  =>  array(
               IPSLIGHT_NAME            => 'All',
               IPSLIGHT_ACTIVATABLE     => false),
            'Erdgeschoss'  =>  array(
               IPSLIGHT_NAME            => 'Erdgeschoss',
               IPSLIGHT_ACTIVATABLE     => false),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit Beleuchtungs Gruppen
	 */
	function IPSLight_GetGroupConfiguration() {
		return array('All'             =>	array('All',            IPSLIGHT_ACTIVATABLE => true),
		             'Erdgeschoss'     =>	array('Erdgeschoss',    IPSLIGHT_ACTIVATABLE => true),
		             'Garage'          =>	array('Garage',    		IPSLIGHT_ACTIVATABLE => false),
		             'Draussen'         =>	array('Draussen',    		IPSLIGHT_ACTIVATABLE => false)
	   );
	}

	/**
	 *
	 * Definition der Beleuchtungs Programme
	 *
	 * Die Konfiguration erfolgt in Form eines Arrays, für jedes Beleuchtungsprogramm wird ein Eintrag im Array erzeugt.
	 *
	 * Für jedes Beleuchtungsprogramm werden dann die einzelnen Programme ebenfalls als Array hinterlegt, diese wiederum haben ihre
	 * Eigenschaften nochmals in einem Array gespeichert:
	 *
	 * IPSLIGHT_PROGRAMON  - Liste mit Beleuchungselementen, die bei diesem Programm eingeschaltet sein sollen.
	 *
	 * IPSLIGHT_PROGRAMOFF  - Liste mit Beleuchungselementen, die bei diesem Programm ausgeschaltet sein sollen.
	 *
	 * IPSLIGHT_PROGRAMLEVEL  - Liste mit Beleuchungselementen, die auf einen bestimmten Dimm Level gestellt werden sollen
	 *
	 * Eine Liste mit diversen Beispiel Konfigurationen findet sich auch im Example Ordner
	 *
	 *
	 * Beispiel:
	 * @code
        function IPSLight_GetProgramConfiguration() {
          return array(
				'Aus'  	=>	array(
					IPSLIGHT_PROGRAMOFF		=> 	'WellnessWand,WellnessDecke,WellnessSauna,WellnessDusche,WellnessAmbiente',
				),
				'TV'  	=>	array(
					IPSLIGHT_PROGRAMLEVEL	=> 	'WellnessWand,30',
					IPSLIGHT_PROGRAMOFF		=> 	'WellnessDecke,WellnessSauna,WellnessDusche,WellnessAmbiente',

				),
				'Relax'  	=>	array(
					IPSLIGHT_PROGRAMON		=> 	'WellnessSauna,WellnessDusche,WellnessAmbiente',
					IPSLIGHT_PROGRAMLEVEL	=> 	'WellnessDecke,30,WellnessWand,30',

				),
             );
        }
	 * @endcocde
	 *
	 * @return string Liefert Array mit Beleuchtungs Gruppen
	 */
	function IPSLight_GetProgramConfiguration() {
		return array(
			'Aus'  	=>	array(IPSLIGHT_PROGRAMOFF	   =>	'Erdgeschoss,Draussen,Garage,Schlafzimmer,Wintergarten,All'
			),
			'Relax' =>	array(IPSLIGHT_PROGRAMLEVEL	=>	'Wintergarten,5'
			)
		);
	}

	/**
	 *
	 * Definition der WebFront GUI
	 *
	 * Die Konfiguration der WebFront Oberfläche ist NICHT dokumentiert, ist aber analog zur normalen WebFront Konfigurator GUI
	 * aufgebaut.
	 *
	 * Beispiele finden sich im Example Ordner
	 *
	 * @return string Liefert Array zum Aufbau des WebFronts
	 */
	function IPSLight_GetWebFrontConfiguration() {
		return array(
		);
	}

	/**
	 *
	 * Definition der Mobile GUI
	 *
	 * Die Konfiguration der Mobile GUI ist NICHT dokumentiert
	 *
	 * Beispiele finden sich im Example Ordner
	 *
	 * @return string Liefert Array zum Aufbau der Mobile GUI
	 */
	function IPSLight_GetMobileConfiguration() {
		return array(
		);
	}

	/** @}*/
?>

Danke.

Steht das „Danke“ tatsächlich im Programm?

Gruß
Bruno

Natürlich nicht :slight_smile: sollte nicht in den PHP Code sondern ans Ende vom Post

Gut, was sagt das Logfile ?

Denke ich habe den Fehler …

            'Wohnzimmer'       =>    array('Wintergarten', 'Erdgeschoss,All', 'Dimmer', 'IPSComponentDimmer_Homematic,59961'),
            'Schlafzimmer'     =>    array('Schlafzimmer', 'Erdgeschoss,All', 'Dimmer', 'IPSComponentDimmer_Homematic,39118'),
            'Garage'           =>    array('Garage',       'Garage',          'Switch', 'IPSComponentSwitch_Homematic,13966'),
            'Draussen'          =>    array('Draussen',      'Draussen, All',    'Switch', 'IPSComponentSwitch_Homematic,21605')

Bitte die vier Zeilen ändern

Die GUI von IPSLight ist nicht automatisiert.

Wie im WIKI angemerkt, kann konfiguriert werden, ist aber „advanced“ und nicht dokumentiert …

Sorry, mein Fehler. Ich dachte das WebFront baut sich automatisch auf. Habe es jetzt aber anhand der Beispiel-Konfiguration hin bekommen. Danke!

Hallo
Heute ist mir aufgefallen , dass ich meine HUE-Lampe nicht auf 100% regeln kann.
HUE-Wert soll auf 255 gesetzt werden.
Fehler ist in IPSComponentRGB_PhilipsHUE.class.php Zeile 165.
Ist

$level = round($level * 2,55);

Sollte wohl

$level = round($level * 2.55);

sein.

Hallo Andreas,
danke für das tolle Modul funktioniert wunderbar, so jetzt zu meiner Frage!
Kann man eventuell Fritz! DECT 200 Steckdosen mit ins IPS-Light-Modul bringen? Auf meinen IP-Symcon-Server sind sie schon integriert und ich kann sie auch schalten. Ich weiß dass es mit den Schaltaktoren zu tun haben muss. Folgende habe ich schon ohne Erfolg probiert.

• IPSComponentSwitch
• IPSComponentSwitch_1WireD2408
• IPSComponentSwitch_1WireD2413
• IPSComponentSwitch_Dummy
• IPSComponentSwitch_DMX
• IPSComponentSwitch_EatonMoeller
• IPSComponentSwitch_EIB
• IPSComponentSwitch_FS20
• IPSComponentSwitch_Homematic
• IPSComponentSwitch_LCN (Ansteuerung mit LCN_SwitchRelay)
• IPSComponentSwitch_LCNa (Ansteuerung mit LCN_SetIntensity)
• IPSComponentSwitch_ZW

In IPS-View kann ich sie mit den ‚STATE‘ Variablen auch schon schalten.

Bedanke mich schon mal im Voraus für einen Denkanstoß.

Kalleman

Für die Ansteuerung der Steckdosen musst Du Dir eine eigene IPSComponent schreiben. Die entsprechenden Befehle solltest Du in Deinem derzeigen Ansteuerungsscript finden.

Schau Dir auch mal diese Wiki Beitrag an, hier hab ich schon mal beschrieben, wie man so eine Erweiterung macht.

Falls Du nicht klar kommst, kann ich Dir auch etwas unter die Arme greifen …

@1007

seh ich auch so, habs mal übernommen

Danke Brownson, werde es mal erst selber probieren.

Ich bin mir noch nicht ganz sicher wie ich den RGBW868 Dimmer einbinden kann.
den RGB Anteil hab ich schon am laufen. Das funktioniert echt spitze.

Allerdings ist da ja noch der Dimmer für die weiße LED Leiste.

Wie kann ich diesen einbinden?
In den normalen IPS Components ist er bei dimmer nicht aufgeführt.
Wenn ich in der Config den so definiere
‚Dimmer‘, 'IPSComponentDimmer,39546

[Hardware\ProJet\RGBW\RGBW-868 (Wohnzimmer Sofa)\White]*/’
39546 ist die ID von dem Weisen Dimmer

bringt er einen Fehler

Hab mal eine neue Komponente „IPSComponentDimmer_IPS868“ hinzugefügt, die ermöglicht die Ansteuerung des White Channels.

Bitte um Feedback, ob das Teil funktioniert…

Hallo

Habs gleich installiert und konfiguriert. Es funktioniert auf dem ersten Blick super. Allerdings ist folgender bug, je nachdem wie man es sieht.

Schaltet man den RGB an, wählt schließend weis aus. Wird der bunte Teil ausgeschalteten.

Schaltet man weis ein, wird die Farbe auf null gedimmt.

Evtl finden wir hierfür eine Lösung?

Evtl aktuellen farb Wert speichern diesen dann wieder übernehmen. Ist wahrscheinlich doch etwas komplizierter.

Das sollte das Problem lösen:

IPSComponentDimmer_IPS868


		public function SetState($power, $level) {
			$color  = GetValue(IPS_GetVariableIDByName('Color', $this->instanceId));
			$red    = floor($color/256/256);
			$green  = floor(($color-$red*256*256)/256);
			$blue   = floor(($color-$red*256*256-$green*256));
			if (!$power) {
				@PJ_DimRGBW ($this->instanceId, $red, 0, $green, 0, $blue, 0, 0, 2);
			} else {
				@PJ_DimRGBW ($this->instanceId, $red, 0, $green, 0, $blue, 0, $level*255/100, 2);
			}
		}

IPSComponentRGB_IPS868


		public function SetState($power, $color, $level) {
			if (!$power) {
				@PJ_DimRGBW ($this->instanceId, 0, 2, 0, 2, 0, 2, GetValue(IPS_GetVariableIDByName('White', $this->instanceId)), 0);
			} else {
				$red    = floor($color/256/256);
				$green  = floor(($color-$red*256*256)/256);
				$blue   = floor(($color-$red*256*256-$green*256));
				$red    = floor($red*$level/100);
				$green  = floor($green*$level/100);
				$blue   = floor($blue*$level/100);

				@PJ_DimRGBW ($this->instanceId, $red, 2, $green, 2, $blue, 2, GetValue(IPS_GetVariableIDByName('White', $this->instanceId)), 0);
			}
		}


Bitte mal versuchsweise die Funktionsaufrufe in den Components ersetzen …

Wahnsinn du bist einfach echt auf Zack.

habs gerade mal rein kopiert. Es funktioniert bestens!!! Alle Funktionen getestet und läuft einfach bestens.
Kann dann genau so für die Allgemeinheit übernommen werden.

Vielen Dank nochmal

Hi.
Nach vielem Lesen hier im Thread kann ich IPSLight auch verwenden…
Im wiki ist auch ein Beispiel zur Ansteuerung der Hues.

Leider geht das bei mir nicht.

    IPSUtils_Include ('IPSLight.inc.php', 'IPSLibrary::app::modules::IPSLight');
    IPSLight_SetSwitchByName('WZ Hue MitteRechts', true);
    $lightManager = new IPSLight_Manager();
    $rgb = '#ff4c32';
    //$rgb = [127,0,2];
    
     $lightManager -> SetRGB(59490  /*[Program\IPSLibrary\data\modules\IPSLight\Switches\WZ Hue MitteRechts#Color]*/, $rgb);
     $lightManager -> SetRGB(37598  /*[Program\IPSLibrary\data\modules\IPSLight\Switches\WZ Hue MitteRechts#Level]*/, 50);
    

Was genau muss als „color“ übergeben werden? Im wiki heißt es „Farbe per RGB(Hex)-Wert setzen“.
Dabei kriege ich

Warning: Cannot auto-convert to Integer from Variant. Error: Could not convert variant of type (String) into type (Boolean) in B:_Programs\IP-Symcon\scripts\IPSLibrary\app\modules\IPSLight\IPSLight_Manager.class.php on line 289

Habe es auch so probiert:


    $rgb = '#4BE5BE';
    //$rgb = [127,0,2];
    $test = new IPSComponentRGB_PhilipsHUE('192.168.0.7', 'xyxyxyxyx', 1, 'LLC011');
    $test -> SetState(true,$rgb,100);

ging auch nicht :S