Philips HUE Modul

@manni

Hi ja das ist leider eine Einschränkung, da ich nur über die Gruppen-ID und nicht wie bei den Lampen eine Unique-ID habe. Eine richtige Lösung habe ich nicht, da bis jetzt keiner mehr als eine Bridge hatte und ich selber auch nicht.

Könnte man die Dummy-Instanzen und Variablen nicht mit Idents anlegen?
Dann wäre das in IPS eindeutig.

Irgendwie in die Richtung
gw1_group0 … xxx — gw1_group0_HUE, gw1_group0_Zustand
gw2_group0 … xxx — gw2_group0_HUE, gw2_group0_Zustand

edit: sehe gerade, die Variablen haben schon Idents.

Klar ist das irgendwie machbar. Da ich keine zwei Bridges habe, hab ich es nie eingebaut :smiley:

Öhm, ganzlieb Anfrage stellen Du [emoji1]
Hättest Du mal Zeit und Lust etwas in diese Richtung in das Modul einzupflegen? [emoji1]

Gesendet von meinem D6633 mit Tapatalk

Hallo Leute,

etwas irritierend musste ich feststellen, daß die Hue nicht mehr abgeglichen werden.

Bleibt jetzt die Frage: Wo leg ich jetzt die Gruppen an und wo werden die zugewiesen? Und warum tut er das nicht automatisch? :smiley:

Viele Grüße

Hallo zusammen,

bin neu hier und möchte auch mal etwas beitragen. :slight_smile: Bin nicht sicher, ob es dazu schon etwas gibt:

Mit dem Ansatz für das Auslesen der HUE-Taster von Fonzo habe ich versucht, den HUE-Bewegungsmelder auszulesen. Hierbei bin ich auf einen versteckten Temperatursensor im Bewegungsmelder gestoßen, den man ungefähr so anzapfen kann:

 <?
// Config
$catid = 11040 /*[Hue Gruppen\All]*/;
$HUEBridgeID =  25876 /*[Philips Hue Bridge]*/;
// Config END

$data = null;
$path = "/sensors";
$switches = HUE_Request($HUEBridgeID, $path, $data);

 //var_dump($switches);

 foreach ($switches as $key => $switch) {
 	$name = $switch->name;
   
 	if (isset($switch->state->temperature)) {
    	
		$type = $switch->type;
        
		$lastupdated = $switch->state->lastupdated;
		$temperature = $switch->state->temperature/100;
		
        $lasttimestamp = strtotime($lastupdated);
        
		$temperaturename = $name." Temperature";
        $lastupdatedname = $name." Lastupdated";
        
		$keyident = generateIdent($key."_".$name."_".$type);
		$temperatureident = generateIdent("Temperature_".$key."_".$name."_".$type);
       	$lastupdatedident = generateIdent("Lastupdated_".$key."_".$name."_".$type);
 	    
		$instanceid = CreateInstanceByIdent($catid, $keyident, $name, $moduleid = "{485D0419-BE97-4548-AA9C-C083EB82E61E}");
 
		$temperatureid = CreateVariableByIdent($instanceid, $temperatureident, $temperaturename, 2, $profile = "~Temperature");
		
		IPS_SetName($temperatureid, $temperaturename);
       	SetValue($temperatureid, $temperature);
		
       	$lastupdatedid = CreateVariableByIdent($instanceid, $lastupdatedident, $lastupdatedname, 1, $profile = "~UnixTimestamp");
		
		IPS_SetName($lastupdatedid, $lastupdatedname);
       	SetValue($lastupdatedid, $lasttimestamp);
    }  
 }  


function generateIdent($name) {
    $name = str_replace (" ", "_", $name);
    $umlaute = Array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/");
    $replace = Array("ae","oe","ue","Ae","Oe","Ue","ss");
    $ident = preg_replace($umlaute, $replace, $name);
	return $ident;
}
    
function CreateInstanceByIdent($id, $ident, $name, $moduleid = "{485D0419-BE97-4548-AA9C-C083EB82E61E}") {
	$iid = @IPS_GetObjectIDByIdent($ident, $id);

	if($iid === false) {
    	$iid = IPS_CreateInstance($moduleid);
        IPS_SetParent($iid, $id);
        IPS_SetName($iid, $name);
        IPS_SetIdent($iid, $ident);
    }
    
	return $iid;
}
        
function CreateVariableByIdent($id, $ident, $name, $type, $profile = "") {
	$vid = @IPS_GetObjectIDByIdent($ident, $id);
	
	if($vid === false) {
		$vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetIdent($vid, $ident);
        
		if($profile != "")
        	IPS_SetVariableCustomProfile($vid, $profile);
        }
        
	return $vid;
}      
?> 

Der Wert wird anscheinend alle 5 Minuten in der HUE-Bridge bzw. im Sensor aktualisiert. Das Skript müsste also zyklisch
ausgeführt werden.

Vielleicht hat traxanos ja Lust und Zeit, den Temperatursensor ins IPS HUE Modul einzubauen.

Grüße

Thanks for creating this great module!

I’ve just submitted a pull request to the GitHub repository (Added support for HUE Motion Sensor by erykio · Pull Request #2 · traxanos/SymconHUE · GitHub) which adds support for the HUE Motion Sensor. Please let me know if there is anything that needs to be changed to make it work. It’s working great in my setup so far.

Feel free to reply in German, even though I can’t write it myself, reading it is not so hard :stuck_out_tongue:

Hy Leute hat schon mal jemand den Emulator HueUpnp (GitHub - falk0069/hue-upnp: Philips Hue UPNP and HTTP emulator (works with the Android Hue app and Logitech Harmony Home Remotes)) genutz? Ich bekomme über das Modul nur Fehlermeldungen bei der Abfrage der Geräte.

Wer die neuste Firmware auf die Tradfri Lampen aufgespielt hat, kann diese dann vom Tradfri Gateway abmelden und an einem Hue Gateway anmelden. Ich kann jetzt mit dem Hue Modul auch die Tradfri Lampen schalten, diese wurden sofort erkannt nachdem diese am Hue Gateway angelernt waren.

Gibt es schon etwas Neues zum Thema Bewegungsmelder einbinden?

Du kannst die Skripte nutzten, ansonsten ist ein Pull Request online s.o. Es ist aber Urlaubszeit, also ein wenig Geduld bis der Pull Request angeschaut wurde, so lange kannst Du ja das Skript nutzten.

Ich habe einen zweiten Hub in Betrieb genommen weil ich Probleme hatte mit der Reichweite und Erreichbarkeit einzelner Lampen. Bei Hubs steuern unterschiedliche Lampen und besitzen unterschiedliche Gruppen. das anlegen des zweiten Hubs hat auch geklappt es wurden auch die Lampen eingelesen und lassen sich schalten.

Ich habe aber ein Problem bei den Gruppen, in IP-Symcon werden alle paar Sekunden des zweiten Gateways umbenannt, und zwar mit Gruppennamen des ersten Gateways, die auf dem zweiten Gateway gar nicht existieren. Hat jemand auch zwei Gateways und kann das komische Verhalten bei sich bestätigen? Hat da jemand vielleicht eine Lösung wie das gehoben werden kann?

@Fronzo

Die Gruppensteuerung ist leider aktuell nicht Multibridge tauglich, da die IDs nicht uniq sind.

Oh schade, da die ID nicht eindeutig sind erklärt dann wohl auch das da Gruppen durcheinander geraten. Hm, ich muss mal sehen eventuell gibt es da ja doch irgendeine Möglichkeit, es gibt zumindest Apps wie iConnect die bekommen das hin, wie auch immer die das dann im Detail lösen. Die normale HUE App kann ja glaube ich auch nur mit einer Bridge umgehen.

Bei der Hue App musst Du dann immer zwischen den beiden Bridges hin und her wechseln.

Stehe auch vor dem gleichen Probleme.

Gesendet von meinem D6633 mit Tapatalk

Ich habe jetzt denn Code noch nicht im Detail angeschaut, aber wo siehst Du das genaue Problem bzw. kannst Du mir sagen wo die Codezeilen zu finden sind, die die Groups anlegen bzw. ständig neu schreiben?

Auffällig ist ja, das wenn man auf Geräte abgleichen drückt in der Hue Gateway Instanz, alle Lampen und auch alle Gruppen völlig korrekt ausgelesen werden, da kommt es ja also zunächst zu keiner Durchmischung.

Das Problem ist Hausgemacht in dem Modul.
Der Datenaustausch wird nicht genutzt.
Schau dir Mal GetDeviceByUniqueId
Das funktioniert natürlich so nicht.
Michael

Oh ja stimmt, habe ich jetzt auch gesehen. Da muss ich mir mal überlegen ob mir das zur Zeit den Aufwand wert ist alles umzubauen. Vielleicht nutzt ja traxanos doch noch in einen zukünftigen Version den Datenaustausch, dann wäre das Problem zumindest vom Tisch. Ich kann ihn aber verstehen wenn er selber nur ein Gateway hat und alles funktioniert, würde ich mir selber jetzt den Aufwand wohl auch nicht gleich machen, es umzubauen, es funktioniert ja schließlich, mit einem Gateway zumindest.

Das das mit dem Datenaustausch steht auf meiner Todo Liste. Problem ist wie immer die Zeit.

Danke für die Info, dann muss ich ja nicht unmittelbar daran rumbasteln, wenn ich weis das Du das sowieso irgendwann machen willst, wir haben ja alle nur begrenzt Zeit :cool:. Bisher hat das Modul bei mir auch immer gut funktioniert, danke dafür. Das Problem ist mir ja erst jetzt bewusst geworden als ich ein zweites Gateway angeschlossen habe.