[Modul] Philips HUE V2 (Neue Push API)

Hallo Kai,
nach dem letzten Update bekam ich allerlei Meldungen von meiner zweiten Bridge bzw. wurde nicht mehr verbunden, aber nach dem Neustart von IPS wieder alles gut.

Was mir aber eben aufgefallen ist das im SSE Client bei beiden Bridges die gleiche IP steht.

image

Beide SSE Clients sind nur unterschiedlich bei der hue-application-key.

scheint zu passen, danke!

Hi Kai,

im Grunde hast du natürlich recht, dass das als (zusätzliche) Zone deklariert werden könnte.
Jedoch habe ich mehr an eine allgemeine Lösungsmöglichkeit auch für weitere ich sag mal Bereiche gedacht. Hier pro möglicher Szene dann noch eine Zone hinterher zu konfigurieren wäre zu aufwändig, bzw. unübersichtlich.
Hintergrund ist, dass ich bisher auch schon eine Art „Ecotimer“ (in der WAGO) pro Raum aktiviere, sobald dort ein Licht eingeschaltet wird. D.h. wenn sich dann in diesem Raum Zeit X nix mehr bewegt, wird das Licht ausgeschalten. Bisher habe ich das ohne Vorwarnung gemacht.

Nun würde ich gerne (wie bei nativer HUE Verwendung gesehen) vorher als Warnung leicht vordimmen und wenn sich dann immer noch nichts bewegt danach dann ausschalten. Die Gruppierung der Leuchten kommt hier vom Raum, da das fast durchgängig auch dem zuständigen Bewegungsmelder entspricht. Innerhalb des Raums gibts aber ggf. unterschiedliche Szenen mit unterschiedlichen Leuchten… und nun sind wir wieder bei meiner oben beschriebenen Thematik… :wink:

Aber keine Hektik. Das ist ja nun nur ein „NiceToHave“-UseCase. Bugfixing geht vor.

PS: Wenn ich Dir / Euch mit Testing auch gern anderer Funktionalitäten helfen kann, einfach Bescheid geben. Ich bin froh, wenn’s Leute gibt, die sich so ausgiebig mit der Materie beschäftigen. Das muss unterstützt werden !

Hilft dir die Funktion getOwnerInfo() dann nicht schon?

Grüße,
Kai

Jepp,
das ist ja das Array der Leuchten. Das ist genau das Thema.
Hast du mir noch nen Tipp, wie ich auf die im Array befindlichen
[rid] => bf359c79-3580-4ee2… entweder direkt den Status abfragen kann oder wie ich von dieser zur zugehörigen DeviceID oder StatusID in Symcon komme ?

Da überlege ich mir mal was zu.

Grüße,
Kai

1 „Gefällt mir“

Hallo Kai,
die Lampe ist eine Hue white ambiance. Effekte sind somit nur bedingt möglich. Schade, dass die neue API das nicht mehr hergibt.
Ich habe es jetzt über die Szenensteuerung versucht. Das geht als Notlösung.

Lieber wäre es mir auch noch über ein Script, aber hier kehrt im letzten Schritt auch nicht mehr der vorherige Zustand zurück. Die Lampe geht immer aus, obwohl sie vorher angeschaltet war. Zudem kommt noch eine Fehlermeldung.
Hat sich hier etwas an den Befehlen geändert?

Gruß marvus

Hallo Kai,
kannst du mir sagen was ich falsch mache:

Ich möchte eine Lampe laut der Doku so Schalten:

<?php


$InstanzID= 17780;
$color = 'F6B859';
$opt = ['on' => ['on' => true], 'dimming' => ['brightness' => 150], 'dynamics' => ['duration' => 45]];

PHUE_setColor($InstanzID, $color, $opt);


?>

Als Fehlermeldung kommt das hier:

Warning: A non-numeric value encountered in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(7) : eval()'d code on line 8 Warning: A non-numeric value encountered in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(7) : eval()'d code on line 9 Warning: A non-numeric value encountered in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(7) : eval()'d code on line 10 Warning: Division by zero in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(7) : eval()'d code on line 31 Warning: Division by zero in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(7) : eval()'d code on line 32 Fatal error: Uncaught TypeError: Argument 3 passed to RessourceModule::sendData() must be of the type string, bool given, called in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php on line 91 and defined in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\libs\ResourceModule.php:109 Stack trace: #0 C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\Light\module.php(91): RessourceModule->sendData(‚5fe9c6ab-bb66-4…‘, ‚light‘, false) #1 C:\ProgramData\Symcon\scripts__generated.inc.php(6627): HUELight->setColor(‚F6B859‘, Array) #2 C:\ProgramData\Symcon\scripts\26491.ips.php(7): PHUE_setColor(17780, ‚F6B859‘, Array) #3 {main} thrown in C:\ProgramData\Symcon\modules.store\info.schnittcher.ips.philipshue.v2\libs\ResourceModule.php on line 109

Hallo sirkentucky,

die Farbe musst du als Integer (z.B. aus der Farbvariable aus Symcon mit getvalueinteger) angeben.
Angabe in Hex funktioniert meines Wissens nicht.

Danke für deine Hilfe, das wars.

@sirkentucky du kanns auch folgendes schreiben:

$InstanzID= 17780;
$color = 0xF6B859;

Grüße,
Kai

2 „Gefällt mir“

Versuch es mal bitte so:

RequestAction(15176,$status);
RequestAction(12553,$helligkeit);
RequestAction(35634,$farbtemperatur);

Geht das? Oder soll ich so eine Request Funktion wieder einführen?

Grüße,
Kai

Hast du ein Testsystem? Wenn ja, könntest du dort beide Bridges nochmal anlegen und schauen, ob das Modul die Instanzen richtig anlegt? Ich habe nur eine Bridge hier und kann das nicht testen.

Grüße,
Kai

Man lernt nie aus… :ok_hand:

Hallo Kai,
habe ein Testsystem angelegt und beide Bridges neu angelernt und da ist es korrekt bzw. die URL ist jetzt unterschiedlich. Anfangend mit der richtigen IP.

Dann weiß ich nicht was auf dem anderem System schief gelaufen ist.
Danke für den Test. Aber es läuft aktuell alles bei dir?

Grüße,
Kai

Ja läuft alles soweit. Lege dann mal auf dem Produktiv System alles neu an und halte es im Auge.

Danke für deine Arbeit.

1 „Gefällt mir“
<?php

//alte Werte merken
$status = GetValue(15176);
$helligkeit = GetValue(12553);
$farbtemperatur = GetValue(35634);

//anschalten
RequestAction(15176, true);

//halbe Sekunde warten
IPS_Sleep(500);

//ausschalten
RequestAction(15176, false);

//halbe Sekunde warten
IPS_Sleep(500);

//anschalten
RequestAction(15176, true);

//halbe Sekunde warten
IPS_Sleep(500);

//ausschalten
RequestAction(15176, false);

//halbe Sekunde warten
IPS_Sleep(500);

//anschalten
RequestAction(15176, true);

//halbe Sekunde warten
IPS_Sleep(500);

//ausschalten
RequestAction(15176, false);

//halbe Sekunde warten
IPS_Sleep(500);

//Alten Stand wiederherstellen
RequestAction(15176,$status);
RequestAction(12553,$helligkeit);
RequestAction(35634,$farbtemperatur);

Hallo Kai, nein das geht leider nicht. Wenn die Lampe vorher aus war, bleibt sie an.
Dann wohl doch lieber wieder über die Request Funktion?
Liebe Grüße

Hi Kai,

leider habe ich immer wieder die „Erscheinung“, dass ich im Schlafzimmer meine
Leuchten nicht mehr ausgeschaltet bekomme.
Das liegt daran, dass der Status der HUE Leuchte(n) in Symcon nicht aktualisiert wird. D.h. Leuchten
werden zwar über Symcon RequestAction bzw. PHUE_SetColor anfangs korrekt eingeschalten. Aber
danach bekomme ich sie nicht mehr aus, da der Status der Leuchte immer noch auf aus ist und
ich vor dem Ausschalten abfrage, ob die Leuchte an ist… (-> Taster Funktion wegen eventueller externer Bedienung bzw. Wandtaster via WAGO)
Nach Stop / Start des SSE Clients tut’s dann wieder. Hast du dir schon Gedanken gemacht, wie man
das erkennen kann und ggf. den SSE Client automatisiert neu startet ?
Für eine vollständige produktive Nutzung müssten wir das irgendwie erkennen, dass der SSE Client sich „verhaspelt“ hat… Von den Hrn. Symcon gabs diesbezüglich ja noch keine Rückmeldung, oder ?

PS: Das Verhalten bzw. Problem ist bei Gruppe / Einzelleuchte identisch.

Frage: Gibts in der Kommunikation Bridge <-> SSE Client eine Art Telegrammzähler ?

Leider bekommt man dazu keine Meldung.
Ich schaue mal, dass ich dir ein Script schreibe, was den Client täglich neu verbindet, mit dem Workaround sollte das dann ja erstmal funktionieren.

Grüße,
Kai