Homebridge: Philips Hue auf Apple device bei dimmen immer 1% Unterschied.

Begonnen von elfnulleins, 25 Dezember 2016, 10:13:19

Vorheriges Thema - Nächstes Thema

elfnulleins

Hallo zusammen,

Ich habe die Homebridge bei mir eingerichtet und bin damit eigentlich auch sehr zufrieden.
Nur habe ich seit der Erstinstallation das Problem, dass ich beim Dimmen meiner Hue-Funzeln auf den Apple Geräten immer einen Dimm-Wert mit einem Prozent Unterschied angezeigt bekomme. Dumme ich also beispielsweise auf 50% funktioniert das wunderbar, nach kurzer Zeit aktualisiert sich dieser Wert in der Home App aber auf 51%. In FHEM selber sind aber die 50% eingestellt.

Man könnte nun meinen das sei Erbsenzählerei. Aber letztlich hat das zur Folge, dass immer dann, wenn ich eine ganze Gruppe an Lampen über eine Szene dimmen möchte, diese Szene dann in der Home App nicht als aktiv angezeigt wird (da die Dimm-Werte der Lampen nicht mit denen übereinstimmen, die in der Szene festgelegt sind). In der Folge kann ich die Szene nicht direkt deaktivieren, also das Licht nicht ausstellen. Ich muss immer erst noch einmal die Szene aktivieren und danach, bevor sich die Dimm-Werte der Lampen verfälschen direkt wieder deaktivieren. Dann geht das Licht aus. Geht zwar, ist aber etwas unschön.

Kennt jemand dieses Phänomen?

Danke euch!

LG

justme1968

welcher wert steht zu dem zeitpunkt im debug browser? gibt es event bevor das problem auftritt?

wenn eins von beiden ja ist: zeig mal bitte ein list vom hue device am anfang und nach dem der wert nicht mehr passt und die homebridge konsolen ausgabe vom start und vom zeitpunkt wenn es nicht mehr passt.

wenn nein: ich habe erst mal keine idee...

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

elfnulleins

Hi,

danke erstmal für die Antwort.
Ich benutze FHEM allerdings noch nicht ganz so lange.. Wie komme ich an den Debug-Browser? Und wie kann ich dann so eine list ziehen?

Besten Dank!
Oh - Und frohe Weihnachten  :)

LG

justme1968

port 8282 auf dem rechner auf dem homebridge läuft.

siehe konsolen ausgabe beim starten.

mit dem list kommando.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

elfnulleins

Moin,

ich hab das Beispiel mit den 50% mal durchgespielt. Hier mal der Ausschnitt aus der Konsole:

[12/26/2016, 12:31:06 PM] [FHEM] HUEDevice2: executing set cmd for Brightness with value 50
[12/26/2016, 12:31:06 PM] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20HUEDevice2%20pct%2050&XHR=1
  2016-12-26 12:31:07 caching: HUEDevice2-bri: 128
[12/26/2016, 12:31:07 PM] [FHEM]     caching: Brightness: 51 (as number; from '128')

Ich habe auch herausgefunden, dass dieses Phänomen scheinbar ab einer Brightness von 35% auftritt. Darunter passiert das nicht:

[12/26/2016, 12:33:37 PM] [FHEM] HUEDevice2: executing set cmd for Brightness with value 35
[12/26/2016, 12:33:37 PM] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20HUEDevice2%20pct%2035&XHR=1
  2016-12-26 12:33:38 caching: HUEDevice2-bri: 89
[12/26/2016, 12:33:38 PM] [FHEM]     caching: Brightness: 36 (as number; from '89')

[12/26/2016, 12:34:21 PM] [FHEM] HUEDevice2: executing set cmd for Brightness with value 34
[12/26/2016, 12:34:21 PM] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20HUEDevice2%20pct%2034&XHR=1
  2016-12-26 12:34:22 caching: HUEDevice2-bri: 86
[12/26/2016, 12:34:22 PM] [FHEM]     caching: Brightness: 34 (as number; from '86')

LG
Mario

justme1968

änder mal in index.js etwa in zeile 1159 das Math.ceil auf Math.round. die Zeilennummer stimmt vermutlich nicht mit deiner version überein. es gibt aber nur ein einziges Math.ceil.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968


elfnulleins

Habe sie gefunden..
Und soweit ich das sehen kann hat das tatsächlich geholfen!
Die Werte weichen jetzt nicht mehr ab und die Szenen bleiben in der Home-App aktiv. Großartig  :D

Vielen Dank für die tolle Unterstützung!

LG
Mario

elfnulleins

Hi Andre,

Vor einigen Tagen, nach fast einem Jahr absolut problemloser Nutzung, ist mir aufgefallen, dass dieses Problem scheinbar noch immer / erneut (?) besteht. Dieses Mal wird ab einem Dimming-Wert von 10% immer ein Pozent abgezogen, und ab einem Wert von 80% immer ein Prozent draufgeschlagen.
Ich habe schon einmal versucht, ein weiteres verdächtiges ,,Math.ceil" ausfindig zu machen, habe aber bislang nichts finden können. Hättest Du eine Idee?

Ich bin kein JS-Gott, unterstütze aber natürlich gerne soweit ich kann.

LG
Mario

elfnulleins

Hallo nochmal,

also ich habe mich jetzt noch einmal selbst ran gemacht und eine (für mich ausreichende) Lösung gefunden.
Die HUE Bridge meldet die Helligkeit zur Basis 254, FHEM hingegen arbeitet mit Prozent also Basis 100. Hier muss bei der Synchronisierung entsprechend umgerechnet werden. In der index.js gibt es dazu auch eine nachvollziehbare Formel (Helligkeit / 2,54). Allerdings scheint die Bridge die Helligkeit irgendwie (??) etwas anders zu berechnen, weshalb es bei dem Rückmelden der Helligkeit der Bridge in Prozent an HomeKit zu Rundungsfehlern kommen kann. In diesem Moment erhöht / verringert sich dann der prozentuale Wert in HomeKit um ein Prozent.

Ich habe stundenlang gesucht, konnte aber keinen rechnerischen Weg finden, dieses Verhalten zu korrigieren. Also habe ich nun folgendes getan:

Nach dem erfolgreichen Setzen eines neuen pct Wertes in FHEM (FHEM_execute in index.js) merke ich mir diesen erfolgreich gesetzten Wert in einer Variablen, die ich ganz zu Anfang des Skriptes mit ,,undefined" definiere. NUR bei der Umrechnung für Hue-devices prüfe ich dann, ob in meiner Variablen etwas ungleich ,,undefined" drin steht. Wenn ja, diesen Wert returnen und Variable wieder auf undefined setzen. Anderenfalls die bisherige Berechnung durchführen.

Einen erfolgreich in fhem gesetzten Wert noch einmal aus der bri herzuleiten schien mir überflüssig. Bei Erfolg umgehe ich diese Berechnung jetzt einfach.

Das mag mehr ein Workaround sein als eine anständige Lösung. Trotzdem ist das 1% Problem erst einmal passé.  :D

LG
Mario