brutella / hkknx-public

hkknx is a HomeKit KNX bridge for KNX.
https://hochgatterer.me/hkknx
97 stars 6 forks source link

Steuerung HSV in Homekit #223

Closed mbrockeu closed 1 year ago

mbrockeu commented 1 year ago

Ich habe eine Lampe angelegt bei der ich die einzelnen GAs von H,S,V jeweils Helligkeit, Farbton und Sättigung zugeordnet habe. In HomeKit bekomme ich das als Slider angezeigt bei dem ich direkt die Helligkeit steuern kann.

Wenn ich aber eine GA für HSV habe kann ich diese auch verwenden, allerdings wird mir dann in HomeKit ein Schalter angezeigt und ich muss über die Farbauswahl unten alles einstellen.

Hat das einen Grund warum das so ist? Müsste doch vom Verhalten das gleiche sein, nur das es am Ende ein paar GAs spart?! Oder habe ich was übersehen?

brutella commented 1 year ago

Welchen Datentyp hast du in hkknx konfiguriert, um HSV über eine GA zu steuern?

mbrockeu commented 1 year ago

Ich habe dort 232-600 genommen, so wie es auch in der ETS definiert ist. Die Steuerung der Farbe etc, funktioniert auch. Nur ist die Darstellung in HomeKit bei beiden Varianten Unterschiedlich.

Aber offensichtlich ist Farbe nur für Farbe gedacht und nicht Helligkeit.

image

Sofern ich die einzelnen Werte angebe scheint er das auch richtig zu nutzen. Der Gedanke war, dass man ggfs. etwas spart.

brutella commented 1 year ago

DPST 232-600 ist RGB also Rot Grün Blau und beinhaltet nicht die Helligkeit.

mbrockeu commented 1 year ago

Dann wandelt der Aktor das sicher um. Ok dann wird’s wohl nicht gehen bzw. ich muss Helligkeit separat mitgeben.

mbrockeu commented 1 year ago

Kann es sein, dass er statt RGB dann die Werte für HSV in das gleiche Objekt speichert? Würde ja vermutlich gehen, aber dann müsstest du es auch entsprechend interpretieren oder? Heißt es müsste eine Auswahl Farbsteuerung geben die den Wert als HSV interpretiert und nicht RGB? Geht sowas? Auch wenn das vielleicht nicht ganz konform ist. Wüsste zumindest nicht wie sonst HSV Werte als ganzes gespeichert werden.

Es handelt sich übrigens um einer Enertex LED Dimmer.

brutella commented 1 year ago

Warum sollte der Dimmer die Werte als HSV interpretieren, wenn du den Datentyp 232.600 (RGB) eingestellt hast?

mbrockeu commented 1 year ago

Warum der Controller von Enertex das so macht kann ich auch nicht sagen. Aber im Handbuch ist das so beschrieben:

image

Da steht es sogar explizit drin.

image
brutella commented 1 year ago

Dieses Verhalten ist ja toll. 😒 Was für eine Enertex Controller hast du da in Verwendung?

mbrockeu commented 1 year ago

Das wären diese beiden: https://www.enertex.de/d-dimmer2.html

Die Applikationen sind soweit ich das sehr identisch.

brutella commented 1 year ago

Im Build 2.4.2-b3 gibt es jetzt die Eigenschaft "Helligkeit & Farbe" mit DPT 232-600 die HSV unterstützt. Bitte testen und Feedback geben.

mbrockeu commented 1 year ago

Also ich hab die neue Version installiert. Aber irgendwie ist die Bridge nicht mehr erreichbar. Im Status ist alles grün. Gibts irgendwie ne Möglichkeit einen erweiterten Log anzuzeigen?

Ich hab immer wieder das Problem das die Bridge nicht kommt. Und selbst nach einem reset dauert es immer ewig bis sie wieder hi zugefügt werden konnte.

brutella commented 1 year ago

Bei Änderungen an den Einstellungen oder Geräten wird die Bridge neu gestartet. Das kann etwas dauern. Siehe #212

mbrockeu commented 1 year ago

So konnte es mal testen, also Grundsätzlich scheint es zu gehen. Aber ich glaube bei der Umrechnung ist irgendwo ein Trick drin. Ich habe die Lampe einmal mit allen Werten einzeln drin und einmal mit HSV. Wenn die Lampe mit den einzelnen anschalte ist die Helligkeit bei 100% die andere nur bei 58%.

je nachdem wie ich dran rumstelle kommt auch irgendwann "Keine Antwort" bei beiden Geräten.

brutella commented 1 year ago

Speichert der Dimmer den letzten Helligkeitswert und sendet diesen beim Einschalten auf den Bus?

Ansonsten ist das Verhalten wie erwartet, da die Apple Home-App automatisch beim Einschalten einer Lampe das Licht auf 100% stellt – wenn vorher auf 0%. Siehe #161

mbrockeu commented 1 year ago

Also wenn ich das richtig deute speichert er den Wert. Ich habe zumindest über die ETS mal den Farbcode gesetzt und er hat dann die Info über die GA geschickt wo HSV zusammen ist und auf den einzelnen Werten. Die Aufteilung ist auch H S V bei den Hexwerten.

Allerdings kommt in HomeKit die Meldung "Keine Antwort" sobald ich dort eine Änderung vornehme. Komischerweise kann ich sie dann noch an und ausschalten und der vorherige Wert kommt dann über den Bus zurück.

Merkwürdig allerdings, wenn man über die einzelnen Werte geht ballert er immer die 100% Helligkeit zurück. Ich versuche mal zu schauen welchen Helligkeitswert er anzeigt wenn ich über die ETS den Wert schicke. Die sollten ja bei beiden Lampen das gleiche Anzeigen. Leider dauert der Start der Bridge mit der Initialisierung ne Weile.

mbrockeu commented 1 year ago

Kleine Ergänzung. Die Lampe mit den Einzelwerten startet mit "100%" der Dimmer nimmt aber den letzten Wert und reduziert z.b. auf "29%". Es werden alle HSV Werte Einzeln als Status gesendet und einmal gesamt. Die Lampe mit dem neuen Wert bleibt aber auf 100%. Egal wie der Status kommt.

mbrockeu commented 1 year ago

Wir werden die Werte den umgerechnet? Meine Recherche haben jetzt ergeben: als Beispiel: 4E = 78 78/255 = 0,306 = 31%

Bei den Winkel eher so: A4 = 164 360/255*164 = 231,5°

Völlig absurd was Enertex da tut, aber nun gut.

brutella commented 1 year ago

Ja, genau so ist die Umrechnung in hkknx.

mbrockeu commented 1 year ago

Folgendes wird gesendet wenn ich die Lampe (egal welche von Beiden) einschalte

image

Und das sagt mir dann HomeKit: image Der Wert bei HSV scheint der zu sein den ich irgendwann mal in HomeKit gesetzt habe. Wenn ich die Helligkeit bei der neuen Konfiguration ändere passiert auf dem Bus nix.

brutella commented 1 year ago

Das Problem mit der Helligkeit sollte mit 2.4.2-b4 behoben sein. Bitte ausprobieren.

mbrockeu commented 1 year ago

Helligkeit scheint zu funktionieren, auch wenn in den niedrigen Bereichen die Anzeige um 1% abweicht. Die Farbsteuerung scheint weiterhin nicht zu funktionieren, es kommt dann irgendwann wieder "keine Antwort" und die Farbe wechselt in keinem Fall.

brutella commented 1 year ago

Gibt es neue Erkenntnisse bei diesem Problem mit Version 2.4.2-b8?

mbrockeu commented 1 year ago

Mir ist nur gerade aufgefallen, dass offenbar der Wert für HSV gesamt nicht gesendet wird. Das erklärt natürlich auch warum sich dort nix ändert und warum er gegebenenfalls dann hängt mit "Keine Antwort". Die Variante mit allem getrennt scheint weiterhin zu gehen.

image
mrmatze007 commented 1 year ago

Ich habe nun auch die 2.5.0-b1 installiert, da sonst die Ansteuerung der RGBW-Geräte bei Szenen nicht sauber funktioniert (Thema: In welcher Reihenfolge werden die Befehle von HomeKit übertragen). Abhilfe kann hier vermutlich der HSV-Kombidatenpunkt schaffen.

Bei mir ist aber dasselbe Verhalten wie bei @mbrockeu zu beobachten: Der HSV-Kombidatenpunkt wird nicht übertragen. Folglich erhalte ich auch die Fehlermeldung "Keine Antwort" in HomeKit.

brutella commented 1 year ago

@mrmatze007 Wie schaut deine Konfiguration in hkknx für diese HSV Lampe aus?

mrmatze007 commented 1 year ago

@brutella

Danke für deine schnelle Antwort. Meine Konfiguration besteht aus lediglich aus "Schalten" und "Helligkeit & Farbe". Damit werden ja alle notwendigen Werte übertragen. Hier ein Screenshot: image

brutella commented 1 year ago

Und welche Bytes werden an KNX versendet, wenn du die Farbe oder die Helligkeit in HomeKit änderst?

mrmatze007 commented 1 year ago

Wenn die Leuchte per HomeKit eingeschaltet wird, sendet hkknx ein "Ein" sowie einen initialen HSV-Befehl (warum auch immer, der wird eigentlich nicht benötigt, da der Aktor durch das "Ein" ja die initiale Farbe vorgibt): image

Schalte ich die Leuchte direkt danach aus, wird ein "Aus" auf den Bus gesendet: image

Versuche ich nach erneutem Einschalten die Helligkeit oder die Farbe zu verändern, geschieht in beiden Fällen nichts und ich bekomme eine "keine Antwort" in HomeKit: image

Danke Dir für den Support!

brutella commented 1 year ago

~Findest du dazu im Systemprotokoll irgendwelche Log-Ausgaben?~

Edit: Habe den Fehler gefunden. Werd gleich mal eine neue Pre-Release Version bereitstellen...

Edit 2: In Version 2.5.0-b2 sollte die Farbe nun korrekt an KNX weitergegeben werden.

mrmatze007 commented 1 year ago

Wow, das ging ja mal richtig zügig. Danke dir!

Habe die 2.5.0-b2 gleich installiert. Und tatsächlich: Die HSV-Befehle kommen jetzt perfekt auf dem Bus an. Respekt :-)

Es wäre super, wenn du noch folgende Sache "fixen" könntest: Wird die HSV-gesteuerte Leuchte angeschaltet, wird zusätzlich zum "Ein" immer ein HSV-Wert übergeben. Das Verhalten ist so wie in meinem Screenshot gestern dokumentiert (= dort wurde #0000FF übergeben). Dieser HSV-Wert bezieht sich auf die letzte Farbeinstellung.

Bei der RGBW-gesteuerten Leuchte ist das Verhalten anders: Dort wird beim Einschalten nur ein "Ein" gesendet. Das hat den Vorteil, dass der KNX-Aktor seine Voreinstellung aufruft (= bei mir ist das HCL). Wird ein HSV-Farbwert zusätzlich mit gegeben, wird die interne Logik der Aktors übergangen.

Daher wäre es klasse, wenn du bei HSV-Leuchten ebenfalls nur ein "Ein" übergeben könntest.

Danke Dir!!

mbrockeu commented 1 year ago

Wow, das ging ja mal richtig zügig. Danke dir!

Habe die 2.5.0-b2 gleich installiert. Und tatsächlich: Die HSV-Befehle kommen jetzt perfekt auf dem Bus an. Respekt :-)

Es wäre super, wenn du noch folgende Sache "fixen" könntest: Wird die HSV-gesteuerte Leuchte angeschaltet, wird zusätzlich zum "Ein" immer ein HSV-Wert übergeben. Das Verhalten ist so wie in meinem Screenshot gestern dokumentiert (= dort wurde #0000FF übergeben). Dieser HSV-Wert bezieht sich auf die letzte Farbeinstellung.

Bei der RGBW-gesteuerten Leuchte ist das Verhalten anders: Dort wird beim Einschalten nur ein "Ein" gesendet. Das hat den Vorteil, dass der KNX-Aktor seine Voreinstellung aufruft (= bei mir ist das HCL). Wird ein HSV-Farbwert zusätzlich mit gegeben, wird die interne Logik der Aktors übergangen.

Daher wäre es klasse, wenn du bei HSV-Leuchten ebenfalls nur ein "Ein" übergeben könntest.

Danke Dir!!

Fände ich auch gut. Bei mir wird’s primär auch HCL sein. Ich werde es dann wohl in 3-4 Wochen testen 😊

mrmatze007 commented 1 year ago

@mbrockeu - Ich werde so lange für dich testen ;-)

brutella commented 1 year ago

Das Problem, dass HSV Werte beim Einschalten der Lampe gesendet werden sollte jetzt in 2.5.1-b1 behoben sein.

mrmatze007 commented 1 year ago

Mega! In 2.5.1-b1 wird beim Einschalten tatsächlich kein HSV-Wert mehr mitgegeben.

Dafür hat sich das andere Problemchen wieder aufgetan: Jetzt wird bei der Farbverstellung wieder kein HSV-Wert gesendet. Heißt, in der aktuellen Beta kann ich die Leuchte nur noch ein- und ausschalten.

Hier ein Screenshot aus dem Log: image

brutella commented 1 year ago

Upsi, mit 2.5.1-b2 sollte es wieder klappen.

mrmatze007 commented 1 year ago

Du haust die Betas ja echt raus wie McDonalds die BigMacs... 👍

Ich habe mir die neue Version gerade installiert und "Upsi" scheint gelöst zu sein. Bei einer Testleuchte hat es bei einem kurzen Test zumindest funktioniert. Ich werde jetzt die restlichen Leuchten im Haus auf HSV umstellen und in ein paar Tagen berichten.

Merci!

mrmatze007 commented 1 year ago

Ich habe etwas "rumprobiert" und dabei folgendes Verhalten festgestellt: Die Farbeinstellung bei Einzelleuchten funktioniert. Wenn ich die Farbe im Rahmen einer Szene speichere, wird beim Aktivieren der Szene aber nur ein "Ein" gesendet. Die HSV-Farbinformation wird beim Aktivieren der Szene also nicht mitgegeben.

Ist das ein Thema von hkknx oder von Apple?

brutella commented 1 year ago

Dieses Verhalten ergibt aus der Anforderungen, dass beim Einschalten der Lampe mit 100% Helligkeit die Farbinformation nicht mitgesendet werden soll. 100% Helligkeit wird automatisch von der Apple Home-App (oder Siri) mitgesendet, wenn die Lampe mit einem Tipp auf die Kachel eingeschaltet wird.

Hast du schonmal versucht in der Szene die Lampe nicht einzuschalten, sondern nur die Farbinformation festzulegen. Die Lampe müsste sich dann automatisch einschalten – glaub ich. (Mit der Apple Home-App kannst du das leider nicht festlegen, aber mit Home+ schon.)

mrmatze007 commented 1 year ago

Alles klar, jetzt beißt sich die Katze also in den Schwanz. Über die ETS habe ich es gerade getestet: Über das Senden der reinen HSV-Information lässt sich die Leuchte einschalten. Ich hole mir dann mal die Home+-App und teste das. Lassen sich in Home+ erstellte Szenen dann auch in der Apple Home-App bzw. über Siri aufrufen?

brutella commented 1 year ago

Lassen sich in Home+ erstellte Szenen dann auch in der Apple Home-App bzw. über Siri aufrufen?

Ja, klar. Home+ speichert Szenen und Automationen in HomeKit ab.

brutella commented 1 year ago

Kann dieses Issue nun geschlossen werden?

mrmatze007 commented 1 year ago

On top habe ich mir jetzt noch die Home+-App zugelegt. Und ja: So wie von @brutella geschrieben funktioniert es.

Heißt: Von meiner Seite kann das Issue geschlossen werden.

Danke für den Support!!

mbrockeu commented 1 year ago

Ich kann erst irgendwann im März/April testen. Sollte da noch was sein kann man es ja noch mal aufmachen.

Danke auch von meiner Seite.

brutella commented 1 year ago

Eine Anmerkung zu HSV mit DPT 232.600 gibt es jetzt im Online Handbuch zum nachlesen. https://hochgatterer.me/de/hkknx/docs/accessories/lightbulb/#besonderheit-bei-dpst-232600