Zitat von Tekener
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Bug in Edomi HUE-Bridge v1.5 (19000195_lbs.php)
Einklappen
X
-
Zitat von jonofe Beitrag anzeigen
Oder in kurz: Nachlaufzeit und Ausschalten haben bei einem BWM nichts mit der Helligkeit zu tun.
Kommentar
-
Hi jonofe
Ich habe noch ein anderes mit Hue Sensoren bekanntes Problem gelöst. Der Hue Lichtsensor aktualisiert nur alle 5 Minuten, oder bei Bewegung. Das führt zu folgendem Phänomen:- Lampen brennen und mit brennenden Lampen gemessene Lichtstärke ist bswp. 20000
- Keine Bewegung => Lampen werden ausgestellt.
- Lichtsensor wird nicht aktualisiert, an Edomi mitgeteilte Lichtstärke ist immer noch 20000
- Neue Bewegung => Lampen werden via "Motion dark (A5)" nicht eingeschaltet, weil scheinbare Lichtstärke (A6) höher wie Schwellenwert "lux dark" (E19) ist.
Um das Problem zu lösen habe folgende Änderungen im LBS 19000195_HUE_bridge_1.6 vorgenommen:
In der Methode updateSensorStatus bevor die Sensoren durchiteriert werden, sortiere ich das array, damit die ZLLPRESENCE Sensoren zuletzt verarbeitet werden. Das stellt sicher, das zumindest der aktuelle vorhande Lichtwert bei der Weitergabe des Motion Signals verwendet wird.
PHP-Code:static $sensor_old_presence_lightlevel = array();
// Read sensors from bridge
$hueSensors = $con->getSensors();
// make sure presence sensors are procesed last
usort($hueSensors, function($a, $b)
{
$aType = strtoupper($a->getType());
$bType = strtoupper($b->getType());
if ($aType == $bType) {
return 0;
}
else if ($aType == 'ZLLPRESENCE') {
return 1;
}
else if ($bType == 'ZLLPRESENCE') {
return -1;
}
else {
return 0;
}
});
foreach ($hueSensors as $hueSensor) {
Bei der Verarbeitung des ZLLPRESENCE Sensors $presence state, merke ich mir die aktulle Lichtstärke. Bei der nächsten Verarbeitung wenn sich die Lichtstärke geändert hat, wird und $presence immer noch true, wird das Signal nochmals übermittelt, damit die neue Lichtstärke berücksichtigt werden kann.
PHP-Code:case 'ZLLPRESENCE':
$mac = strtok($hueSensor->getUniqueid(), '-');
$presence = $state->presence;
if (isset($lightlevel[$mac])
&& ($sensorFirstRun[$sid] || !array_key_exists($sid, $sensor_old_presence) || $presence !== $sensor_old_presence[$sid] || ($presence && $sensor_old_presence_lightlevel[$sid] != $lightlevel[$mac]) )) {
$sensor_old_presence[$sid] = $presence;
$sensor_old_presence_lightlevel[$sid] = $lightlevel[$mac];
if ($config->on)
$sensorUpdate[$sid]['presence'] = $presence;
}
getSensorDefaults($id, $hueSensor, $sensorUpdate, $sensorFirstRun);
break;
Grüsse
Philip
- Likes 2
Kommentar
-
Hi jonofe
Mir ist beim gleichzeitigen Setzen von HSV Werten an mehrern Hue Lampen aufgefallen, dass die Lampen scheinbar hintereinander geupdatet werden. Ich habe mir den Hue Bridge LBS angeschaut und darauf hin folgende Änderung gemacht.
Original
PHP-Code:while (getSysInfo(1) >= 1) {
try {
// change lights based on command received from lights via MSG QUEUE
if(msg_receive($msg_queue, $bridgeID, $msgtype, 4096, $msg, true, MSG_IPC_NOWAIT, $msg_error)) {
PHP-Code:while (getSysInfo(1) >= 1) {
try {
// change lights based on command received from lights via MSG QUEUE
while(msg_receive($msg_queue, $bridgeID, $msgtype, 4096, $msg, true, MSG_IPC_NOWAIT, $msg_error)) {
Gruss
Philip
Kommentar
-
Mit der letzen Änderung funktioniert das gleichzeitige Updaten von mehreren Lampen besserm, aber noch nicht gut genug. Folgende zusätzliche Änderung verbessert das Verhalten weiter:
Original:
PHP-Code:case 'hsv':
if (!$device->isOn())
$device->setOn(true);
$hsv = rgb_hsv_to_array($value);
if ($hsv[0] <= 255 && $hsv[0] >= 0)
$device->setHue((int)($hsv[0] / 255 * 65535));
if ($hsv[1] <= 255 && $hsv[1] >= 0)
$device->setSaturation($hsv[1]);
if ($hsv[2] <= 255 && $hsv[2] >= 0)
$device->setBrightness($hsv[2]);
break;
PHP-Code:case 'hsv':
if (!$device->isOn())
$device->setOn(true);
$hsv = rgb_hsv_to_array($value);
if ($hsv[0] <= 255 && $hsv[0] >= 0 && $hsv[1] <= 255 && $hsv[1] >= 0 && $hsv[2] <= 255 && $hsv[2] >= 0) {
$commandSetLightState = new \Phue\Command\SetLightState($device);
$commandSetLightState->hue((int)($hsv[0] / 255 * 65535))
->saturation($hsv[1])
->brightness($hsv[2]);
$commandSetLightState->transitionTime(0.5);
$con->sendCommand($commandSetLightState);
}
else {
if ($hsv[0] <= 255 && $hsv[0] >= 0)
$device->setHue((int)($hsv[0] / 255 * 65535));
if ($hsv[1] <= 255 && $hsv[1] >= 0)
$device->setSaturation($hsv[1]);
if ($hsv[2] <= 255 && $hsv[2] >= 0)
$device->setBrightness($hsv[2]);
}
break;
Grüsse
Philip
PS: Frohe WeihnachtenZuletzt geändert von Tekener; 25.12.2022, 22:24.
- Likes 1
Kommentar
-
Zitat von jonofe Beitrag anzeigenBei mir funktioniert das gleichzeitige Ändern von mehreren leuchten mit dem HUE Group LBS.
Danke für die Rückmeldung. Den LBS habe ich noch gar nicht ausprobiert. Nehme an der basiert auf https://github.com/sqmk/Phue Groups. Das habe ich mir heute angeschaut und wie es aussieht, kann man damit aber "nur" allen Lampen die gleiche Helligkeit/Farbe setzen.
Kommentar
-
In der Hue App kann man für eine Gruppe eine Szene defnieren, in der jede Lampe eine beliebige Helligkeit und Farbe hat. Wenn man dann die Szene wechselt, wird bei allen Lampen schön synchron die Helligkeit und Farbe entsprechend angepasst.
Mittels Edomi und deinen LBS habe ich implementiert, dass beim speichern und wiederherstellen von KNX Szenen, die Hue Lampen mit Ihren Farben und Helligkeitsparametern auch integriert sind. Das funktionioniert ganz gut, ausser dass es eben nicht 100% synchron ist.
Kommentar
-
Ich habe die Zeile
PHP-Code:$commandSetLightState->transitionTime(0.5);
Zuletzt geändert von Tekener; 25.12.2022, 22:37.
Kommentar
-
Die Hue App wird wohl das Szenen API Verwerden. https://developers.meethue.com/devel...-api/4-scenes/
Szenen können via dem Group API, https://developers.meethue.com/devel...i/groupds-api/ parameter "scene" aufgerufen werden.
Das Aufrufen von Szenen wird von sqmk/Phue unterstützt, das Management von Szenen leider nicht.
Kommentar
-
Hallo Zusammen, da ich mir diese Woche eine HUE Leuchte und ein Gateway gekauft habe möchte dies am Wochenende mal alles testen. Jetzt habe ich folgendes Problem festgestellt das der Baustein Verbindung mit dem Gateway aufbaut und die ID ausliest aber kein Devicelist an A4 ausgeben wird. In meiner App kann ich nicht soweit ich sehe keine ID auslesen. Vielen Dank für eure Unterstützung Screenshot 2023-11-18 165649.jpg
Kommentar
Kommentar