NEWS
Yet another HomeKit adapter
-
@valbuz ne, hab es mit zigbee Datenbank verwechselt. Sorry.
-
@el_malto sagte in Yet another HomeKit adapter:
Das hört sich für mich so an als wenn das nur eine homebridge-hue funktion ist. Denke, dass das sonst von Homekit gesteuert wird. Wenn alles über homekit läuft, merkt homekit ja ob man händisch was verändert hat. Bei ioBroker kann man sowas dann nur über ein Skript wie @loverz das schon erwähnt abfangen.
Ich weiß nicht genau, wie Du das meinst. YAHKA müsste wie Homebridge-Hue die Funktionalität haben, die Fähigkeit für Adaptive Lighting an HomeKit zu melden. YAHKA ist die Brücke zwischen HomeKit, das initial und fortlaufend alle 24 Stunden die neuen Kurven für Helligkeit und Farbtemperatur sendet und dem Hue-Objekt in der ioBroker Datenbank. YAHKA müsste dann selbstständig alle Minute das Licht-Objekt anhand der aktuellen Kurve updaten (für die Eigenschaft Adaptive Lighting müsste es ggf auch noch einen neuen Datenpunkt geben?). Die ganze Adaptive Lighting Logik und Kommunikation mit HomeKit müsste von YAHKA erledigt werden. So macht es meine ich auch Homebridge.
-
@ronnyw sagte in Yet another HomeKit adapter:
YAHKA müsste dann selbstständig alle Minute das Licht-Objekt anhand der aktuellen Kurve updaten
Genau das ist der Knackpunkt. Wenn alles über HomeKit läuft, ohne Homebridge und ioBroker oder einer anderen Smart Home Zentrale, regelt HomeKit alles und kann dann ja auch merken wenn man manuell über die HomeKit App geändert wird.
Wenn man aber Yahka oder sonst was dazwischen hat, wird es schwierig. Yahka müsste ja jetzt ständig die Datenpunkte der Lampen überprüfen und gucken das die Datenpunkte nicht anders als durch Yahka bzw. von der HomeKit App (z.B. durch ein Skript oder per Hand) geändert werden weil Yahka sonst nacher eine Minute den Wert wieder überschreibt.
Das ist ja genau das gleich wie mit den Skripten hier aus dem Forum die adaptive Lighting nachahmen. Wenn das Skript läuft und man dann händisch was an der Lampe verstellt, wird beim nächsten Zyklus dieser Wert wieder vom Skript überschrieben. Es muss also immer festgestellt werden ob und wie ein Datenpunkt geändert wird.
Die Problematik hat man in einer reinen HomeKit Umgebung nicht.Oder habe ich irgendwo was vergessen oder übersehen?
-
@el_malto sagte in Yet another HomeKit adapter:
Oder habe ich irgendwo was vergessen oder übersehen?
Das Update geht natürlich in beide Richtungen. Wenn Du jetzt die Helligkeit vom Licht außerhalb von HomeKit änderst, hast Du in HomeKit ja trotzdem die korrekte Helligkeit.
Würde Adaptive Lighting implementiert werden, würde eine manuelle Änderung des Lichtes außerhalb von HomeKit dafür sorgen, dass damit Adaptive Lighting deaktiviert werden würde, und HomeKit das auch weiß. Das heißt - wissen sollte! Denn wenn ich das richtig gesehen hab, ist das gerade noch ein Bug, dass HomeKit das nicht immer korrekt reflektiert. -
@ronnyw wenn das so ist wäre das natürlich ein cooles feature.
-
@el_malto @ronnyw
In meinem oben verlinkten Script wird das doch auch berücksichtigt.Ich errechne einen Sonnenstand zwischen 0-100%.
Die errechnete Prozentzahl ergibt dann die minutengenaue Farbtemp.
Wenn sich nun der Wert Farbtemp. ändert und von der oben errechneten Zahl abweicht wird die weitere Berechnung bis zum erneuten Einschalten der Lampe deaktiviert.
-
Hi zusammen,
wie ihr in meinem Thread lesen könnt habe ich die ein oder andere Frage zum YAHKA.
linkHier mal zusammengefasst:
Habe Dimmaktoren welche ich gerne in Homekit integrieren möchte.
Um auf ein % Dimmen zu können muss ich erst den LVL Datenpunkt bei den Aktiren die % reinschreiben und anschließend dem CMD Datenpunkt eine 3=Set Level mitgeben.Aktuell löse ich das über ein Blockly, gibt es denn die Möglichkeit das auch global/direkt in YAHKA zu konfigurieren? Ansonsten müsste ich mir 20 Blocklys anlegen.
Zusätzlich noch die Frage. Wenn ich Home schließe sind die Stati der Geräte quasi immer per default auf aus. Können diese irgendwie von Yahka gespeichert bzw. gemerkt werden?Danke euch vorab und viele Grüße
-
@EnoceanEltako sagte in Yet another HomeKit adapter:
Aktuell löse ich das über ein Blockly, gibt es denn die Möglichkeit das auch global/direkt in YAHKA zu konfigurieren? Ansonsten müsste ich mir 20 Blocklys anlegen.
Hallo,
ich denke man kann das Skript auch irgendwie direkt im Yahka anlegen. Das ist aber meiner Meinung nach wenig zielführend. Einfacher ist es, wenn Du eine Anzahl von geeigneten Datenpunkten anlegst, so das du mit einem von einem "Selektor" getriebenen Trigger alle Lampen steuern kannst. Da musst du zwar für jede Lampe einen Datenpunkt anlegen, aber hast trotzdem nur ein recht einfaches Skript fuer die Verbindung.
-
@EnoceanEltako Hab deinen Thread kurz übersprungen.
Um zu dimmen benötigst du nur einen Datenpunkt in %. Entweder eine Selbst angelegtes Objekt, das du über ein (Blockly) Script fütterst und abholst, oder direkt dein Aktor, wenn der mit % arbeitet.
Außerdem wird ein Objekt für On/Off verwendet, aber manche Aktoren schalten auch bei 0% aus, dann würde man das nicht zwingend brauchen, kann dann aber glaube ich in der Home App nicht auf die Lampe touchen, sondern muss auf 0% runter regeln.
Hab dir die wichtigen Punkte mal gelb markiert:
"Level255" habe ich nur weil meine Hue Spots statt 0-100% mit 0-255 als Zahlenwert arbeiten. YAHKA rechnet dann entsprechend um.
-
@loverz Bitte seinen Thread nochmal genau lesen. Das Problem ist, dass er den Wert mit einen extra Datunpunkt "bestätigen" odeer eher gesagt "setzen" muss.
Er sucht also eine Lösung die das evtl automatisiert. Mit dem Skript aus seinem Thread klappt das. Sein Problem ist nur, dass er jetzt 20 Skripte haben müsste.
Also wenn Yahka den wert im Datenpunkt LVL ändert, müsste Yahka danach im Datenpunkt CMD noch 3 schreiben. -
@el_malto alles klar, dann habe ich es auf die schnelle falsch interpretiert und ziehe mich zurück
-
@loverz brauchst du ja nicht. Eine passende Lösung wäre auch super
-
@el_malto
@EnoceanEltakoAlso habe es mir jetzt doch aufmerksam durchgelesen.
Das erste Problem das du hast ist, dass in deinen LVL Objekt theoretisch ein Wert stehen könnte nehmen wir mal 50 % an und in dem anderen CMD Objekt eine Zahl ungleich drei.
Was passiert dann mit deiner Lampe? Ist die Auf 50 % an, oder ist die aus?Diese Situation solltest du auch abfangen. Heißt wenn dieses Objekt sich geändert hat und 0 ist, dann soll das andere Objekt CMD auch wieder zurück gestellt (OFF) werden.
Letztlich hast du mit deinem Script schon mal einiges richtig gemacht.
Du solltest den Schreibe-Block aber noch durch einen Steuere-Block austauschen.
Außerdem würde ich statt „aktualisiere“ als Trigger „geändert“ auswählen. Hat auch einer schon geschrieben in deinem Post.Jetzt würde ich als erstes mal versuchen diesen einen Lichtkanal zum laufen zu bringen und das Skript dann anschließend für die anderen Kanäle kopieren, das ist keine große Sache.
Der Vorteil wenn du alles in Blockly-Scripts machst ist, dass du auch von anderen Anwendungen anschließend einen Prozentwert an deine Lampen senden kannst. Wenn du das ganze über YahkaDirekt machst, dann würde das nicht gehen.Man kann die Skripts auch in einem Ordner zusammenfassen, dann ist es auch schön übersichtlich.
-
@el_malto sagte in Yet another HomeKit adapter:
Er sucht also eine Lösung die das evtl automatisiert. Mit dem Skript aus seinem Thread klappt das. Sein Problem ist nur, dass er jetzt 20 Skripte haben müsste.
Das ist zu automatisieren.
Angenommen seine Dimmaktoren kommen aus dem Adapter "dimmaktortest.0", und heissen Lampe.1 bis Lampe.20, darin jeweils die DP's level und cmd.
- Schritt:
Ein Skript mit (JS oder Blockly) mit einem Selektor als Trigger anlegen (Doku zum Selektor siehe hier)
Als Selektor channel[state.id=dimmaktortest.0*.level]
Im Trigger sich mit diesem Baustein einmal die ID holen
die ID zerlegen, und daraus die Ziel-ID fuer den CMD Datenpunkt heraus holen. Dann in diesen ein "3" herein schreiben.Damit reicht es mit Yahka den level Datenpunkt zu verbinden. Jede Anpassung sorgt dafuer das der Wert auch gesetzt wird.
Zu testen wäre wie genau der Selektor aussehen muss. Das hängt von den Datenpunktnamen ab.
A.
Edit: ich hatte das Bild des korrekten Baustein vergessen
-
@Asgothian Das scheint mir die fortgeschrittene Variante zu sein.
Für den Anfang würde ich damit nicht anfangen -
@loverz So fortgeschritten ist es nicht. Einmal den Selektor verstehen und glücklich sein. String Manipulationen sollten nicht das grosse Problem sein.
Alles andere sind Erweiterungen am Adapter oder viel Skript-click Arbeit, also eher nicht besser.
A.
Zur not kann ich auch auf Discord helfen das zu bauen, so ist es nicht. (nur nicht heute)
Nachtrag: Man kann das auch ohne Selektor bauen. Dann muss man halt alle 20 quell Datenpunkte von Hand in den Trigger eintragen. Entscheidend ist das man sich die ID des zu setzenden DP's aus der ID des DP welchen den Trigger ausgelöst hat zusammen baut. Dann reicht ein Skript für alle Lampen.
-
@Asgothian Naja, solange ich googeln muss was Discord, String Manipulationen und DP IDs sind finde ich es für mich zu kompliziert. Ich kann natürlich nicht für andere sprechen.
-
...
Discord kann ich noch verstehen - das Programm muss man nicht kennen.
Wenn ich aber vorher von Datenpunkten schreibe und das dann als DP abkürze sollte klar sein was gemeint ist.
Und Object ID kommt in jedem Skript vor, sollte also auch klar sein.A.
-
@Asgothian Ja ich hätte mir Das vielleicht schon Zusammenreimen können, stimmt schon.
Meine Botschaft war einfach nur, dass es Anfänger oft deutlich schwerer haben als hier angenommen wird. Zumindest war es bei mir so, Das weiß ich noch, weil es noch nicht allzu lange her istIch bin natürlich trotzdem dankbar über jede Hilfe. Vor allem Spezialisten wie du sind für uns die beste Quelle zum lernen.
-
@Asgothian @loverz besten Dank euch für die Antworten und den Input. Der Level Wert ist in %.
Wenn der cmd Wert bspw. auf 1 (on) 0 (off) gestellt wird wird das Dimmlevel nicht verändert.Im yahka die on off Funktion funktioniert mit dem Aktor.
Im Skript habe ich bereits steuere und aktualisiert eingebunden.
Komme voraussichtlich erst nach Mittwoch dazu das nochmal zu testen. Könnt ihr mir nur nochmal den Hintergrund zum Datenpunkt erstellen und Selektor nutzten erläutern?
Ich verstehe:
-smarter da globale Funktion- dadurch keine Anpassungen bei neu hinzukommenden Lampen etc.
Frage noch dazu: wie ist das in dem Fall mit dem cmd Endpunkt? Habe noch Jalousie Aktoren im gleichen Adapter die ebenfalls einen cmd Punkt haben. Diese werden allerdings mit 0=stop 1=auf 2=ab gesteuert und in 100ms Einheiten.
An das traue ich mich erst ran wenn die Lichter alle funktionieren.
Könnt ihr mir noch bei dem Thema dass sich Home den aktuellen Stand nicht merkt helfen?
Habe noch keine Steuerzentrale angelegt, hätte kurzfristig ein IPad zur Hand und mittelfristig weil ich einen neuen Apple TV holen. - dadurch keine Anpassungen bei neu hinzukommenden Lampen etc.