HUE Lampen steuern

Hallo,
bin wieder da, hier mal ein Screenshot.

Gruß Uwe

Huhu :slight_smile:

Homematic:


<?
$id_test= 27893 /*[Homematic\Taster - Aktor - Dimmer\Flur\1fach Aktor Deckenlampe Flur]*/;
$id_test_status= GetValue(16729 /*[Homematic\Taster - Aktor - Dimmer\Flur\1fach Aktor Deckenlampe Flur\STATE]*/);

if ($id_test_status == true) 
	{ 
	HM_WriteValueBoolean($id_test, "STATE", false); 
	}  
else  
	{  
	HM_WriteValueBoolean($id_test, "STATE", true);  
	} 

?>

Etwas anders - aber eigentlich das gleiche :wink:

OSRAM Lightfy:


<?

$id_test_status= GetValue(28471 /*[Osram Lightify\Geräte\LEDs Küche\LEDs Küche]*/);

if ($id_test_status == true) 
	{ 
	OSR_SetValue(13186 /*[Osram Lightify\Geräte\LEDs Küche]*/, "STATE", false); 
	}  
else  
	{  
	OSR_SetValue(13186 /*[Osram Lightify\Geräte\LEDs Küche]*/, "STATE", true);  
	} 

?>

HUE Infos: https://github.com/traxanos/SymconHUE


HUE_SetState($lightId, $value)

Das sieht weiterhin eigentlich alles richtig aus. Und bei mir funktioniert das auch einwandfrei.

Kannst du das Skript sonst einfach mal löschen und Zeile für Zeile wieder hinzufügen und immer wieder ausprobieren? Dann findet man vielleicht den Übeltäter, denn auch wenn die Fehlermeldung auf die zweite Codezeile verweist, muss das ja nicht der Verursacher sein, sondern möglicherweise einfach nur ein Symptom.

Hallo,

Danke für die Antwort, werde ich mal so probieren. Irgendwie verstehe ich das nicht. Das Skript hat bei mir früher auf meinen alten System ja auch funktioniert, nur das es damals FS 20 war. Ist schon komisch.

Gruß Uwe

eventuell so

if ($Anrichte_status  ==  true) 

Habe jetzt mal getestet mit einen einfachen Script.

<? 
$test = getValueBoolean(22381 /*[Wohnzimmer\Beleuchtung\Hintergrundbeleuchtung\Status]*/);

// if ($test  ==  true)  
{
FS20_SwitchMode(14919 /*[Wohnzimmer\Beleuchtung\Hintergrundbeleuchtung]*/, false);
}
 
?> 

Wenn ich die IF Bedingung rausnehme läuft es.

<? 
$test = getValueBoolean(22381 /*[Wohnzimmer\Beleuchtung\Hintergrundbeleuchtung\Status]*/);

 if($test==true)
{
FS20_SwitchMode(14919 /*[Wohnzimmer\Beleuchtung\Hintergrundbeleuchtung]*/, false);
}
 
?> 

und so Fehlermeldung

Gruß Uwe

Das läuft ohne Probleme hier durch:

Hallo,

Habe es jetzt hinbekommen. Danke an alle die hier geholfen haben. Habe wieder was dazu gelernt.

Gruß Uwe

Und was war jetzt die eigentliche Fehlerursache? Am Skript per se kann es ja an sich nicht gelegen haben.

Ich habe in der IF Abfrage die Leerzeichen vor und nach „==“ entfernt und dann ging es.

Sehr komisch, und passiert wenn Du jetzt wieder Leerzeichen hinzufügst, das sollte ja überhaupt keine Rolle spielen bzw. keine Fehlermeldung erzeugen?

Hallo Fonzo,
Ich habe gestern nochmal die Leerzeichen eingesetzt, aber was soll ich sagen geht trotzdem. Das ist schon komisch!!!

Nachdem ich nun schon einige Sachen über Symcon am laufen habe und ich auch komplett wechseln will habe ich noch mal eine Frage.
In meiner FS20 Zeit gab es die Behfehle:

FS20_SetIntensity(52675, 0, 10); // TV Wandbeleuchtung in 10s runter fahren

FS20_SwitchDuration( FL_Bilder_Innen_ID , true, 10);  

Da ich jetzt fast nur noch HUE Lampen habe wollte ich diese Funktionen auch für die HUE Lampen nutzen. Aber schon überall gesucht, aber nichts gefunden.
Danke schon mal im voraus.

Ich nehme an das was Du suchst ist TRANSITIONTIME, damit kannst Du über einen Zeitraum dimmen.

Ja ich will die Lampen über einen Zeitraum dimmen bis sie ausgehen und eine Lampe einschalten die nach 5 min z.B. wieder ausgeht.

Dazu gibt es
HUE_SetValues($lightId, $list);
siehe Doku, damit kann man die Transitiontime setzten.

Hallo Fonzo,

kannst du mir mal ein Beispiel posten, bekomme es nicht hin.

Die Wert der Transtiontime wird mit dem Faktor 100ms multipliziert. Bei einer Transitiontime von 4 Sekunden ist also 40 anzugeben. Ansonsten so wie es in der Doku steht.


$lightId = 12345 ; // Objekt ID der Hue Lampe
$list = array ("BRIGHTNESS" => 10, "TRANSITIONTIME" => 40); // Transtionstime given as a multiple of 100ms
HUE_SetValues($lightId, $list);

Setzt die Helligkeit auf 10 innerhalb von 4 Sekunden.

Danke für Deine Hilfe, klappt jetzt.

Ich möchte das beim Fernseher einschalten eine Hintergrundbeleuchtung mit angeht, es sollte aber nur angehen wenn nicht Tag ist. Habe mir folgendes Script gebastelt.

<?
$Status=GetValue(44868 /*[Logitech Harmony Hub\Harmony Activity]*/); 
$Status=GetValue(43824 /*[Location\Ist es Tag]*/);
if(($Status==26227884)&&($Status==false))
PJ_DimRGBW(17276 /*[RGB\Hintergrundbeleuchtung]*/,255,2,255,2,0,0,150,20);
?>

Wenn ich die Abfrage ohne die Location mache klappt es, wenn ich die Variable es ist Tag mit abfrage geht es nicht.
Was muß ich hier abfragen damit es funktioniert?

na ja … zweimal $Status als Variablenname wird dich nicht zum Ziel führen :rolleyes:

LG Tom