Philips HUE Modul

Hallo Traxanos,
auch wenn ich beide Werte im Modus für Farbtemperatur kopiere, erhalte ich nicht die gleichen Einstellungen.
Der Wert, den ich mit HUE_GetValue bekomme, hat den gleichen Wertebereich wie der der mit HUE_SetValue geschrieben werden muss.

<?
//sleep (1);
$modus = GetValue(52439 /*[HWR\Hue\Hue color lamp 1\Modus]*/);
//echo $modus;

$color_temperature = HUE_GetValue(54077 /*[HWR\Hue\Hue color lamp 1]*/,'COLOR_TEMPERATURE');
echo $color_temperature;
//$saturation = GetValue(21190 /*[HWR\Hue\Hue color lamp 1\Sättigung]*/);
$brightness = HUE_GetValue(54077 /*[HWR\Hue\Hue color lamp 1]*/,'BRIGHTNESS');
//$color = GetValue(52680 /*[HWR\Hue\Hue color lamp 1\Farbe]*/);
//$state = GetValue(55475 /*[HWR\Hue\Hue color lamp 1\Zustand]*/);



if ($modus){
	SetValue(52113 /*[HWR\Hue\Hue color lamp 2\Modus]*/,$modus);
//	sleep (1);
	
	HUE_SetValue(34931 /*[HWR\Hue\Hue color lamp 2]*/,'COLOR_TEMPERATURE',$color_temperature);
//	echo $color_temperature;
	HUE_SetValue(34931 /*[HWR\Hue\Hue color lamp 2]*/,'BRIGHTNESS',$brightness);
//	SetValue(40097 /*[HWR\Hue\Hue color lamp 2\Zustand]*/,$state);
	//echo $brightness;
	}
else {
 //  SetValue(52113 /*[HWR\Hue\Hue color lamp 2\Modus]*/,$modus);
 //  sleep (1);
//	SetValue(52471 /*[HWR\Hue\Hue color lamp 2\Farbe]*/,$color);
//	SetValue(58817 /*[HWR\Hue\Hue color lamp 2\Helligkeit]*/,$brightness);
  // SetValue(32363 /*[HWR\Hue\Hue color lamp 2\Sättigung]*/,$saturation);
//   SetValue(40097 /*[HWR\Hue\Hue color lamp 2\Zustand]*/,$state);
 }



?>

Also ich habe es gestern nochmal versucht, wenn ich etwas mit HUE_GetValue auf eine andere Lampe mit HUE_SetValue übertrage, geht alles wunderbar. Dabei war es egal ob ich eine Farbe übertrage oder eine Farbtemperatur. Die Verwendung von GetValue und SetValue auf einer HUELight Instanz ist nicht möglich bzw. wird zu Fehlverhalten führen. Das gilt auch für den Modus.

Hi Leute,

zuerst einmal möchte ich mich für das Modul bedanken. Da ich mich wieder neu in das IP-Symcon Thema einarbeite, habe ich mal eine kleine aber feine Frage. Wie kann ich von der Darstellung die Darstellung der Hue Lampen zu anpassen, dass ich nur sehe

Lampe 1 an/aus und dann die zusätzlichen Einstellungen (Helligkeit/Farbe/Sättigung) bei Bedarf aufklappen.

Danke und Gruß

Aufklappen geht mit Bordmitteln nicht

Gesendet von meinem iPhone mit Tapatalk

gibts andere Möglichkeiten? Ich brauch ja nicht immer die zusätzlichen Werte einstellen.

Stell das in mehreren Kategorien dar - eine mit allen Lichtern nur an aus - eine weitere mit allen Einstellungen. So mach ich das

Gesendet von meinem iPhone mit Tapatalk

könntest du das mal näher ausführen? Klingt nämlich sehr interessant

Leg eine Kategorie in deiner Visu/Webfront an und erstelle dort Links auf die Status-Variable deiner Lampen

Gesendet von meinem iPhone mit Tapatalk

super geil

Danke!

Habe da noch eine Frage… wie kann ich einzelne Lampen als Gruppe schalten…? bspw. in einer Lampe 3 Birnen und will die gemeinsam an und aus machen

Hallo,

ich habe seid gestern einen Philips hue Hub und versuche den in mein IP symcon System einzubinden.
Der hub hat die aktuellste firmware.
So wie es für mich aussieht hat sich das Api geändert.
Der hub kennt das Schlüsselwort „username“ bei der Benuterregistrierung nicht und erwartet einen „devicetyp“ der sich aus device und Username zusammensetzt.
Nach dem Entfernen des Parameters „username“ aus der Registrierungsanfrage komme ich ein bischen weiter.
Zurück gibt es dann bei Erfolg einen Key der aber von dem Hue Modul nicht gespeichert und in Folge auch nicht benutzt wird.
Hat jemand ähnliche Erfahrungen gemacht? Gibt es ein neues SymconHUE Modul oder gibt es eine andere Lösung für das Problem?

Danke,
Bruno

Moin…

…das ist gut möglich. Die haben was am Anmelde-Protokoll geändert. Aus diesem Grund habe ich das Update der HUE-Bridge auch erstmal nicht gemacht.
Ist wohl eine neue Sicherung für „Dritt-Anwendungen“.

Genauere Infos gibt es hier:

Philips Hue

Gruß,
Peter

Laut Philips Dokumentation wurde das Login Api geändert und ab sofort muss der Zurückgelieferte Key genutzt werden.
Ich habe selbst was an dem modul.php geändert und nun funktioniert alles wieder!

Den Key des hue Hub’s habe ich mangels Alternative (zumindest habe ich keine gefunden) in der Opbjektinfo der IO Instanz gespeichert.

Die zwei Funktionen GetUser und RegisterUser wurden modifiziert:


  private function GetUser() {
    if($this->User == '') {
		$lObject = IPS_GetObject($this->InstanceID);
		$this->User = $lObject['ObjectInfo'];
    }
    return $this->User;
  }


  
 public function RegisterUser() {
    $host = $this->GetHost();
	$lUser = $this->ReadPropertyString('User');
    $json = json_encode(array('devicetype' => "IPS#".$lUser));
    $lenght = strlen($json);

    $client = curl_init();
    curl_setopt($client, CURLOPT_URL, "http://$host:80/api");
    curl_setopt($client, CURLOPT_USERAGENT, "SymconHUE");
    curl_setopt($client, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($client, CURLOPT_TIMEOUT, 5);
    curl_setopt($client, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($client, CURLOPT_POST, true);
    curl_setopt($client, CURLOPT_POSTFIELDS, $json);
    $result = curl_exec($client);
    $status = curl_getinfo($client, CURLINFO_HTTP_CODE);
    curl_close($client);

	IPS_LogMessage("SymconHUE",$this->InstanceID."-".$result);
		  

    if ($status == '0') {
      $this->SetStatus(203);
      return false;
    } elseif ($status != '200') {
      IPS_LogMessage("SymconHUE", "Response invalid. Code $status");
    } else {
      $result = json_decode($result);
 
 
	  
	  if(@isset($result[0]->success))
	  {
		$lKey = $result[0]->success->username;
		IPS_LogMessage("SymconHUE","Key: [$lKey]");
		IPS_SetInfo( $this->InstanceID, $lKey );
	  }
	  
      if(@isset($result[0]->error)) {
        $this->SetStatus(202);
      } else {
        $this->SetStatus(102);
      }
    }
  }

Important Whitelist Changes
Please be aware that in the coming months it will no longer be possible to create custom whitelist entries on the Hue bridge. The randomly generated bridge username must be used instead.
It is anticipated this change will be rolled out to the public in April 2016.

This means that if you have developed a Hue Library or have a Hue app in the market which uses a custom whitelist username the bridge authentication will start failing after this date. So of course, if this is the case for your app/library it is strongly advised for you to update your app/library in the coming months to use the randomly generated bridge username.

In Summary
When creating a Whitelist username DO NOT use the below format to create your WhiteList usernames. This WILL NOT WORK in future bridge versions.


{"devicetype": "my_hue_app#iphone peter", "username": "myHueApplication"}

Use the below instead, and store the randomly generated bridge username (from the Bridge Response) in your App for subsequent bridge connections.


{"devicetype": "my_hue_app#iphone peter"}

The bridge will respond in the below format. The below randomly generated username should then be stored and used for future requests.


[{"success":{"username":"1028d66426293e821ecfd9ef1a0731df"}}]

ich schau mal ob ich das die woche angepasst bekomme.

Die Anpassungen sind GIT aber Obacht!

Das Modul muss neu an der Bridge registriert werden! Der dann generierte Benutzername muss aus dem Logfile kopiert werden und in das entsprechende Feld kopiert werden. Ich hätte es gerne Benutzerfreundlicher gestaltet, allerdings solange es die Methode „WritePropertyString“ nicht existiert, geht es leider nicht schöner. Beschwerden gerne beim Hersteller einkippen :smiley:

Dafür gibt es IPS_SetProperty, und dann IPS_ApplyChanges. Der Wert wird dann aber auch nicht augenblicklich sichtbar. Wenn die Instanz aber einmal geschlossen und wieder geöffnet wird, dann ist der Wert in der Instanz gespeichert und sichtbar.

IPS_SetProperty — IP-Symcon :: Automatisierungssoftware

Daran habe ich auch gedacht, aber ich wollte das der Wert sichtbar im Konfigurationsmenü auftaucht. Oder kann ich damit darauf zugreifen? Das habe ich in der Doku nicht finden können.

Ja der Wert ist dann im Konfigformular sichtbar, es wird ja die Eigenschaft gesetzt. Allerdings wie beschrieben erst sichtbar wenn die Instanz neu geöffnet wird.
Lesen tust Du mit
ReadPropertyString — IP-Symcon :: Automatisierungssoftware
Den Wert setzen mit
IPS_SetProperty — IP-Symcon :: Automatisierungssoftware

Danke dann passe ich das auch noch an.

Speicherung erfolgt nun automatisch.