NEWS
Yet another HomeKit adapter
-
@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.
-
@oberfragger danke für die Rückmeldung.
Leider hat die Meteorit Lampe für das Hauptlicht kein Hue Wert, sondern nur den ct Wert...
ich habe dazu Brightness, ColorTemperature und On im Service "Lightbulb" zugewiesen und wie bei dir unter "Properties" bei ColorTemperature die Min und Max Values angepasst (da muss man erst einmal drauf kommen, das dort was dahinter versteckt ist).
Leider stimmt da irgendwas noch nicht, da jetzt alles einen schwarzen Hintergrund hat und die 6 Farbbuttons ohne Funktion sind.
-
Du brauchst ein Skript zum Umrechnen von RGB in HSV, dann kannst du ggf. bei der Farbeinstellung was tun.
Das Anpassen der Grenzwerte bei der Farbtemperatur funktioniert nicht. Yahka erwartet die Farbtemperatur in Mired, nicht in Kelvin.
Die Funktion fuer die Umrechnung (warum, wieso, etc.) sollte mit einer einfachen Websuche zu finden sein. In Yahka kannst du dann einfach als "Transferfunktion" Skript eintragen und die Umrechnung machen. Du bekommst dann 2 Skripte zum Eintragen:
toHomeKit - Darin willst du haben:
return (math.max(math.min(1000000/value, 500),150)
fromHomekit:
return (math.max(math.min(100000/value, 6500),2000)
A.
-
Oh, vielen Dank.
Das schau ich mir mal an. Vielleicht kann ich damit ja parallel in Homebridge das Hyperion Plugin entsorgen.
-
@Asgothian mit deinen Formeln erhalte ich beim starten vom Adapter folgende error Logmeldung...
yahka.0 2020-12-14 15:50:29.796 error at _loop_1 (/opt/iobroker/node_modules/iobroker.yahka/main.js:2874:40) yahka.0 2020-12-14 15:50:29.796 error at THomeKitBridge../yahka.homekit-bridge.ts.THomeKitBridge.createDevice (/opt/iobroker/node_modules/iobroker.yahka/main.js:2960:33) yahka.0 2020-12-14 15:50:29.796 error at YahkaServiceInitializer../yahka.homekit-service.ts.YahkaServiceInitializer.initServices (/opt/iobroker/node_modules/iobroker.yahka/main.js:3366:22) yahka.0 2020-12-14 15:50:29.796 error at YahkaServiceInitializer../yahka.homekit-service.ts.YahkaServiceInitializer.initService (/opt/iobroker/node_modules/iobroker.yahka/main.js:3414:22) yahka.0 2020-12-14 15:50:29.796 error at YahkaServiceInitializer../yahka.homekit-service.ts.YahkaServiceInitializer.initCharacteristic (/opt/iobroker/node_modules/iobroker.yahka/main.js:3460:57) yahka.0 2020-12-14 15:50:29.796 error at TIOBrokerAdapter../yahka.ioBroker-adapter.ts.TIOBrokerAdapter.CreateBinding (/opt/iobroker/node_modules/iobroker.yahka/main.js:3722:64) yahka.0 2020-12-14 15:50:29.796 error at Object.createConversionFunction (/opt/iobroker/node_modules/iobroker.yahka/main.js:2055:61) yahka.0 2020-12-14 15:50:29.796 error at Object../yahka.functions/functions.import.ts.functions_factory_1.conversionFactory.script (/opt/iobroker/node_modules/iobroker.yahka/main.js:2110:86) yahka.0 2020-12-14 15:50:29.796 error at new TIoBrokerConversion_Script (/opt/iobroker/node_modules/iobroker.yahka/main.js:1919:30) yahka.0 2020-12-14 15:50:29.796 error at new Function (<anonymous>) yahka.0 2020-12-14 15:50:29.796 error (27929) SyntaxError: Unexpected token '}' yahka.0 2020-12-14 15:50:29.795 error (27929) unhandled promise rejection: Unexpected token '}' Unhandled 2020-12-14 15:50:29.794 error promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). yahka.0
edit:
muss das Ergebnis nicht vielleicht noch am Ende gerundet werden mit math.round() um die Nachkommastellen zu eliminieren?
Denn mit dem Kelvin Wert 6500 und der ersten Min formel erhalte ich...
Math.min(1000000/6500,500) = 153.84615384615384 -
@Asgothian scheint so dass dann kein Status in der Home App ankommt. Gibt es dafür abhilfe?
-
@EnoceanEltako wann kommt kein Status in der HomeApp an?
-
@TDCroPower du kannst noch ein "math.floor(...) drum setzen.
entscheidend ist.. ich hab eine ) vergessen
-
@Asgothian irgendwas stimmt weiterhin noch nicht.
HomeKit
return (math.floor(math.max(math.min(1000000/value,500),150)))
und ioBroker...
return (math.floor(math.max(math.min(100000/value,6500),2000)))