[Modul] Philips HUE V2 (Neue Push API)

Hallo,

ich versuche mich gerade mit der HUE2 Version.
Instanzen sind angelegt, lassen sich auch schalten und Farbe ändern, aber wenn ich über Script schalten will erhalte ich diese Meldung:

Fatal error: Uncaught Exception: Instance does not implement this function in C:\ProgramData\Symcon\scripts\__generated.inc.php:5258
Stack trace:
#0 C:\ProgramData\Symcon\scripts\57663.ips.php(3): PHUE_SwitchMode(30117, false)
#1 {main}
  thrown in C:\ProgramData\Symcon\scripts\__generated.inc.php on line 5258

Dies ist das Sript:

PHUE_SwitchMode(30117, false);


	
	IPS_SetScriptTimer($_IPS['SELF'], 0);

LG Horst

Habe das jetzt gefunden:

PHUE_GetState(ID der Instanz) -> GetValue(ID der Variable)
PHUE_SwitchMode(ID der Instanz, false) -> RequestAction(ID der Variable, false)
Michael

und wenn ich es so mache:

<?php

//PHUE_SwitchMode(30117, false);

PHUE_GetState(30117) -> GetValue(18162);
PHUE_SwitchMode(30117, false) -> RequestAction(18162, false);


	
	IPS_SetScriptTimer($_IPS['SELF'], 0);
?>

kommt das:

Fatal error: Uncaught Exception: Instance does not implement this function in C:\ProgramData\Symcon\scripts\__generated.inc.php:1338
Stack trace:
#0 C:\ProgramData\Symcon\scripts\57663.ips.php(5): PHUE_GetState(30117)
#1 {main}
  thrown in C:\ProgramData\Symcon\scripts\__generated.inc.php on line 1338

Was mache ich falsch?

Das

Ist eine Erklärung welche Funktion wie zu ersetzen sind und kein Beispiel für ein Script.
Michael

Jetzt habe ich es geschnabbelt.
Es geht.

Hallo,

also für mich scheint es zu kompliziert mit der V2 zu sein.
Kann mir mal jemand ein Bespiel schicken wie sein Script aussieht für:

Farbe einstellen
Helligkeit einstellen
HUE Lampe einschalten

Danke
Gruß Horst

Hallo Horst,

die maximale Flexibilität (mit der V2) bekommst du mit Beispiel:
Dann vorher vorgeben:
$brightness für gewünschte Helligkeit
$duration für die Dauer zum „Einblenden“
$leuchte die Symcon ID der Leuchte
$color die Farbe (z.B. aus einer Symcon Farbvariable)


Code:

$opt1 = [‚on‘ => [‚on‘ => true], ‚dimming‘ => [‚brightness‘ => $brightness], ‚dynamics‘ => [‚duration‘ => $duration]];
PHUE_setColor($leuchte, $color, $opt1);

Guckse hier

@chefhb88 und wibo050447,

Danke habe es jetzt hinbekommen.
Nur in einem Script wird mir noch ein Fehler angezeigt aber wenn ich es ausführe kommt keine Meldung was falsch ist.

LG Horst

Hmm. Was soll ich sagen ?
Wird dir nun ein Fehler angezeigt, oder kommt keine Meldung ??
Wie sieht denn das Script aus ?

Script sieht so aus:

$uhrzeit = GetValueString(19056);

$Anwesend=GetValueBoolean(49581);
    	
        if($Anwesend==True)  //Es ist jemand zu Hause
		           {
		
		        		$rollade = GetValue(24522);

		            		if ($rollade > 0.79) 

                             exit;
                
                    else
                            {

                              $brightness = 100;            //für gewünschte Helligkeit
                              $duration = 50;             //für die Dauer zum „Einblenden“
                              $leuchte = 45707;            //die Symcon ID der Leuchte
                              $color = 0xffffff;         //die Farbe (z.B. aus einer Symcon Farbvariable)


                $opt1 = ['on' => ['on' => true], 'dimming' => ['brightness' => $brightness], 'dynamics' => ['duration' => $duration]];
                PHUE_setColor($leuchte, $color, $opt1);
                                               
						
			if(($uhrzeit >= "17:30") and ($uhrzeit <= "23:00"));
			
			 IPS_SetScriptTimer(21597, 3600);	
                    }	
		}

Wenn ich das ausführe kommt keine Meldung in welcher Zeile der Fehler ist, sondern nur 1 rotes Ausrufungszeichen im Objektbaum.

Ich denke schon das ich was falsch mache aber was?

Auf den ersten Blick würde ich schon mal das exit; vom (zweiten) if ($rollade > 0.79) noch in Klammern packen.
D.h. in Zeile 11 {
und in Zeile 13 wieder zu }

Den Scripttimer würde ich (sofern es sich um das gleiche Script handelt) über
IPS_SetScriptTimer($_IPS[‚SELF‘], 3600);
aktualisieren. Damit verhinderst du auch (bei mir gelegentlich vorkommende) ID Verwechslungen… :wink:

Ansonsten müsstest du mal einen Blick in dein LOG werfen. Da werden Fehler in der Ausführung dokumentiert.

Danke,
mit dem exit hast du wohl recht. Der Scripttimer ist für ein anderes Script.
Log hatte ich schon geschaut, steht nichts.

Jetzt gerade während ich schreibe wurde es automatisch OHNE Fehler ausgeführt. Verstehe ich nicht, steht doch nichts im Script das es nicht händisch ausgeführt werden darf.

Egal erstmal zufrieden das es jetzt geht (hoffentlich :grin: ).

Neue Fehlermeldung, ich glaube aber nicht von mir :wink: .

05.02.2024, 17:34:07 | FlowHandler          | Kann Daten nicht zur Instanz #45707 weiterleiten: 
Warning: Undefined variable $DecColor in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.philipshue.v2\Light\module.php on line 126
RESULT:

Kann da mal jemand gucken?

Das ist der HUE APi geschuldet, da kann ich nichts ändern.
Eine Farbe ist bei Grupppen innerhalb der API nicht vorgesehen.

Zu den Szenen in den Gruppen:

Führe mal den Button "„Aktualisiere Szenenprofil“ in der Instanzkonfiguration aus.
Dann sollte die Variable Szene ein neues Profil bekommen, und davon postest du mal ein Screenshot.

Grüße,
Kai

Kannst du mal ein Debug erstellen und posten, wenn der Fehler auftritt?

Grüße,
Kai

Hat das mittlerweile geklappt?

Grüße,
Kai

Der Aufruf selbst funktioniert. Er hat aber keinerlei Auswirkungen auf den Stripe. Ich kann also nicht irgendein Setting vorgeben, was beim nächsten Einschalten aktiv werden soll.

Dann bietet die API das leider nicht an. Dann kannst du nur Einstellungen setzen, wenn der Stripe eingeschaltet ist.

Grüße,
Kai

Ich schau mal aber irgendwie läuft es bei mir noch nicht richtig.

Hallo Kai,

ich kann machen was ich will es kommt nichts im Debug, auch in der LOG Datei steht nichts.
Das Script ist als Fehlerhaft markiert und im Status steht nur.

07.02.2024, 13:42:13 | FlowHandler          | Kann Daten nicht zur Instanz #45707 weiterleiten: 
Warning: Undefined variable $DecColor in C:\ProgramData\Symcon\modules\.store\info.schnittcher.ips.philipshue.v2\Light\module.php on line 126
RESULT:

Gestern Abend ist das Script aber ohne Fehler gelaufen.