NEWS
Yet another HomeKit adapter
-
@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.
-
@EnoceanEltako Da ist nicht viel zu erklären. Ich habe in diesem Post beschrieben was zu tun ist, sowie den Link auf die Dokumentation zum Selektor verlinkt.
Viel mehr kann man da nicht erklären. Vielleicht noch wie das mit der DP ID geht:
Der verlinkte Baustein "object ID" liefert die ID des Datenpunktes welcher den trigger ausgelöst hat, also z.Bsp.
adaptername.0.Light.1.brightness
Daraus extrahierst du über "finde das letzte auftreten von '.'" und nimm den Teilstrich vom Anfang bis zum letzten Punkt erst einmal das "gerät" :
adaptername.0.Light.1.
Dem hängst Du dann ein ".CMD" an und nutzt diesen String als Datenpunkt ID in einem Steuere Befehl.
A.
-
@Asgothian ok ich schaue mir grad die Tage mal an.
Kannst du mir 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. Liegt es daran? -
@EnoceanEltako ob iPad oder AppleTV sollte egal sein. Sind beide offiziell dafür gedacht.
Mir ist aber aufgefallen, dass meine Home App langsamer aktualisiert hat, als ich iPad UND AppleTV als Homezentrale konfiguriert habe.
-
@EnoceanEltako hat aber das Problem, dass seine Homekit App gar nicht updated. Das müsste ja auch ohne Homezentrale normal funktionieren.
-
@EnoceanEltako
Das ist leider normal. Beim Start der Home app holt sich diese von den Geräten den Status. Sofern das Netz gut ist und du zu haus bist geht das relativ zügig.A.
-
Hi, kann mir jemand sagen welche Services ich für eine Lampe benötige um den gleichen Stand zu haben wie hier eine Xiaomi Yeelight per HomeKit Sticker eingebunden?
Also ist hier kein simpler Switch Services, sondern kann man damit auch die Helligkeit regeln und unten drunter die Temperatur (Color Picker?).
-
Brauchst die Hue-Zahl dann kommt der Colorpicker. Wie du siehst.. auch Yeelight.