snowdd1 / homebridge-knx-de

German Issue/Discussion forum for homebridge-knx
https://github.com/snowdd1/homebridge-knx
20 stars 4 forks source link

Init Funktion für custom Handlers... #52

Closed ctschach closed 4 years ago

ctschach commented 6 years ago

Hi,

wie wäre es mit einer optionalen, zusätzlichen Funktion für die Custom Handlers - sowas wie

onHKInit()

welche direkt nach dem anlegen des Services mit seinen Characteristics aufgerufen wird.

Hintergrund ist, dass ich z.B. eine Characteristic wie "SetDuration" mittels einer lokalen Konstante aus der Config auf einen definierten Init-Wert setzen will. Solche Werte habe ich nicht auf dem KNX-Bus und will sie aber auch nicht uninitialisiert lassen.

In dem "constructor" kann ich es ja noch nicht aufrufen, da hier das Gerät noch nicht vollständig initialisiert ist. Helfen tue ich mir im Moment damit, dass ich beim ersten durchlauf von onKNXValueChange bzw. onHKValueChange meine Werte initialisiere, aber das ist nicht wirklich schön, da hier ja erst bei einer Interaktion der Wert gesetzt wird.

Vermutlich müsste man das irgendwo in der knxdevice nach dem "new ServiceKNX" machen, allerdings ist es mir noch nicht gelungen, hier eine Funktion aus dem CustomServiceAPI aufzurufen.

ctschach commented 6 years ago

Okay, habe das hinbekommen und in meinem Fork entsprechend eingebaut...

snowdd1 commented 5 years ago

Hi @ctschach, hast Du Lust aus Deinen Verbesserungen Pull requests zu machen? Gruß Raoul

ctschach commented 5 years ago

Du meinst nur das mit der init-function bei den custom handlern oder alle Änderungen?

snowdd1 commented 5 years ago

Am besten natürlich alle :-) Ich muss noch verstehen an welchen Stellen du das Grundprogramm verändern müsstest und wo das „Handler“ Konzept ausreichend war.

snowdd1 commented 5 years ago

Hallo Carsten, ich war mal so frei mir einen Teil des init-Codes zu kopieren. Ich habe ihn allerdings nicht ganz wörtlich übernommen: Es wird drei hooks geben:

Implementiert ist bisher nur der erste im Branch handlerInitEvent.

snowdd1 commented 5 years ago

Mist, Gedankenfehler. Das mit den OrphanedDevices funktioniert nicht, weil die ja gerade keinen Eintrag in der knx_config.json mehr haben und damit auch keine Handler-Configuration. Bleiben noch zwei...

Dies sind in dem Branch jetzt drin.

snowdd1 commented 5 years ago

Brauchtest Du für Elgato noch weitere Anpassungen, außerhalb der Handler? Irgendwo müssen ja noch die eve* Typen importiert werden, oder?

ctschach commented 4 years ago

Totgesagte leben länger. Bin gerade mal wieder dabei, alles auf die aktuelle Version zu bringen und es in den aktuellen branch einzupflegen.

Hattest Du "Dein "onServiceInit()" eigentlich jemals irgendwo eingebaut? Dann ihn in dem normalen branch nicht finden....

snowdd1 commented 4 years ago

https://github.com/snowdd1/homebridge-knx/blob/handlerInitEvent/CHANGELOG.md

snowdd1 commented 4 years ago

leider nie getestet - keine Zeit mehr gehabt

snowdd1 commented 4 years ago

ist ein eigener branch

ctschach commented 4 years ago

Okay..danke....bin dabei, meinen fork auf den neusten Stand zu bringen....

snowdd1 commented 4 years ago

Hi Carsten, habe endlich den den InitEvent branch gemerged. https://github.com/snowdd1/homebridge-knx/blob/master/CHANGELOG.md#0321

ctschach commented 4 years ago

Cool...ich habe das ganze mit der Eve History auch nochmal neu aufgebaut. Werde mal irgendwann einen Pull Request machen. Läuft eigentlich sehr zuverlässig....

Jetzt muss ich nur erstmal wieder Github verstehen, wie ich Deine Version neue Version mit meiner Merge.

snowdd1 commented 4 years ago

Das ist für mich auch immer wieder eine Herausforderung. Wenn man nur alle paar Monate mal damit arbeitet, ist das eben kein eingeschliffener Prozess... Magst Du Deine Änderunge nicht mal als Pull-requests in den Master hier zurückführen? Ich kann Dich auch zum Mitglied (collaborateur) machen... Soviel wie Du schon beigetragen hsat....