snowdd1 / homebridge-knx-de

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

Homekit Properties #19

Closed giase82 closed 7 years ago

giase82 commented 7 years ago

Hi,

Kann mir jemand sagen, wo es eine Liste gibt, in der ich rausfinde was für HK Properties (z.B. "TargetPosition", etc.) ich verwenden kann?

Hintergrund ist, dass ich evtl gerne für meine Raffstores ein Addin schreiben würde, dass mir auch "Tilt" mit in einem Gerät zusammenfasst. Allerdings weiß ich nicht ob das überhaupt geht bzw. HK das versteht. Kann mir da jemand näheres sagen?

//giase

giase82 commented 7 years ago

Ach ja und ich wollte das gerne als Frage labeln, kann ich aber wohl nicht.

snowdd1 commented 7 years ago

Aber ich.

snowdd1 commented 7 years ago

Jetzt habe ich schon soviel Doku geschrieben, aber wohl nicht alles deutlich genug:

Wie ich hier schon einmal verlinkt hatte, gibt es die ganze Liste nur als JavaScript-Datei.

https://github.com/KhaosT/HAP-NodeJS/blob/master/lib/gen/HomeKitTypes.js

Eine nicht ganz so aktuelle Liste gibt es als Excel-File hier im deutschen Repository: Services
https://github.com/snowdd1/homebridge-knx-de/blob/master/Services-Translation%20V2.xlsx

Characteristics
https://github.com/snowdd1/homebridge-knx-de/blob/master/Characteristics-Translation%20V2.xlsx

giase82 commented 7 years ago

Ok super Danke Dir. Ich habe schon zwei- oder dreimal über die Stelle in der Doku gelesen, dachte aber nicht dass ich da auch die Liste aller unterstützten Services und Characteristics finde... Kann schon auch an mir liegen :)

Ich glaube man sollte evtl. nochmal an der Stelle wo du beschreibst wie man selbst Add-Ins erstellen kann, beschrieben sein.

giase82 commented 7 years ago

Ich werde mich hoffentlich demnächst mal an den Tilt machen können. Sollte ja nachdem was ich da so lese funktionieren. Wo finde ich den das ursprüngliche default "WindowCovering", damit ich mich daran halten kann? Bzw. soll ich das direkt dort machen?

//giase

Service.WindowCovering = function(displayName, subtype) { Service.call(this, displayName, '0000008C-0000-1000-8000-0026BB765291', subtype);

// Required Characteristics this.addCharacteristic(Characteristic.CurrentPosition); this.addCharacteristic(Characteristic.TargetPosition); this.addCharacteristic(Characteristic.PositionState);

// Optional Characteristics this.addOptionalCharacteristic(Characteristic.HoldPosition); this.addOptionalCharacteristic(Characteristic.TargetHorizontalTiltAngle); this.addOptionalCharacteristic(Characteristic.TargetVerticalTiltAngle); this.addOptionalCharacteristic(Characteristic.CurrentHorizontalTiltAngle); this.addOptionalCharacteristic(Characteristic.CurrentVerticalTiltAngle); this.addOptionalCharacteristic(Characteristic.ObstructionDetected); this.addOptionalCharacteristic(Characteristic.Name); };

snowdd1 commented 7 years ago

Wo finde ich den das ursprüngliche default "WindowCovering"

Das gibt es nicht. In der Version 0.3.0 ist erst einmal alles generisch, dass bedeutet dass die angegeben Characteristics 1:1 an HomeKit durchgereicht werden. Immer wenn das nicht geht, muss man ein add-in programmieren. Ich habe für meine Rollos den GiraJalousieActuator.js geschrieben, der aus Position und Fahrt-Objekten die TargetPosition, CurrentPosition und PositionState errechnet. Den kannst Du gerne um Tilt-Geschichten erweitern oder als Vorlage nehmen - meine Rolladen können halt nur hoch und runter...

giase82 commented 7 years ago

Ach so ist das... Deswegen liefert mir ein grep nix :) Ok, ist in der Mache. Kann leider grade nicht testen. Melde mich aber wenn ich was hab.

giase82 commented 7 years ago

Hab einen Pull-request geschickt. Funktioniert bei mir. Bei Fragen: Fragen! Danke für die Hilfe!

Die ganze addin-Architektur macht's echt super-einfach was neues zu bauen. Super Arbeit!

//giase

snowdd1 commented 7 years ago

Guck Dir bitte noch mal die Konvertierungen an. Habe selber keine Tilt-Geräte, daher kann ich es nur simulieren. Laut Doku sind das aber Winkel (horiz. -90-90°, vert 0-100°) und keine % Werte!

giase82 commented 7 years ago

Hi,

Danke, guter Punkt. Da wollte ich noch nachfragen ob es eine Möglichkeit gibt, die erlaubten HK-Werte von 0-100 anzupassen (mit "minValue" und "maxValue")? Es gibt unterschiedliche Raffstores, manche haben tatsächlich -90 - +90, meine gibt man in 0-100% an.

On Mon, Nov 14, 2016 at 12:02 PM, Raoul notifications@github.com wrote:

Guck Dir bitte noch mal die Konvertierungen an. Habe selber keine Tilt-Geräte, daher kann ich es nur simulieren. Laut Doku sind das aber Winkel (horiz. -90-90°, vert 0-100°) und keine % Werte!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/snowdd1/homebridge-knx-de/issues/19#issuecomment-260307352, or mute the thread https://github.com/notifications/unsubscribe-auth/ATeF0yaaLuYlBMhDMXDDRSzUsP_azeN2ks5q-D-_gaJpZM4Kvzew .

snowdd1 commented 7 years ago

Richtig, damit kann man es eingrenzen. Ich bin gerade nicht sicher ob irgendwo ein Beispiel rumfliegt.

snowdd1 commented 7 years ago

Aber dann überlässt du es den Nutzern, den "richtigen" Bereich für dein add-in zu definieren. Ich fände es besser du belässt es bei den Standard-HomeKit-Werten (-90...90) und rechnest in Prozent um, oder lässt in der knx_config bei den LocalConstants min und max des jeweiligen Actors angeben, und verwendest die für die Umrechnung.

giase82 commented 7 years ago

Das mit den LocalConstants ist ne gute Idee, und wahrscheinlich am schnellsten Umzusetzen. Hat minValue und maxValue auch einen Einfluss auf den angezeigten Bereich in HomeKit? Wenn dem so ist würde zumindest ich persönlich das vorziehen, da ich mir sonst "merken" muss, dass -90° bei mir 0° sind. Wie kann ich denn in einem AddIn auf minValue und maxValue zugreifen?

snowdd1 commented 7 years ago

Ersteres ja, denn dafür ist es gemacht. Letzteres : noch gar nicht.

giase82 commented 7 years ago

Ok. Ich habe mal kurz gekuckt, und die KNX-Aktoren, die ich mir angesehen habe (Berker, Elsner, ...) benutzen DP-Type 5.001, d.h. 0 - 100%. D.h. ich tendiere zu der Lösung mit minValue und maxValue.

Was meinst du?

snowdd1 commented 7 years ago

Wenn das "KNX Standard" ist dann klar. Du kannst auch gerne eine Wiki-Seite für Dein Add-In anlegen, auf der Du beschreibst wie es funktioniert und was die Voraussetzungen sind. Wollte ich sowieso für jedes Add-in anfangen. Den größten "Markt" haben wir sowieso im deutschsprachigen Raum, daher auch gerne hier im -de repository.

snowdd1 commented 7 years ago

Ich überlege mir demnächst mal, ob es eine gute Idee ist, wenn Add-ins bestimmte properties in die knx_config reinschreiben dürfen, so wie MinValue und MaxValue.

giase82 commented 7 years ago

Ok ich mach das mal, teste nochmals und schicke ein update. Das mit der Wiki-page kann ich gerne machen, bin allerdings relativ neu auf Github und muss erstmal checken wie das alles funktioniert :)

snowdd1 commented 7 years ago

WIKI: Ich habe gerade meine Installationsnaleitung aus dem Juli wiedergefunden. Bis auf die node-Version ist die sogar noch richtig... Das Wiki ist echt versteckt, das muss ich im README verlinken!!!!

snowdd1 commented 7 years ago

Hallo @giase82 ich habe mal eine Seite für die Add-ins angefangen, und auch schon was für meine geschrieben. Am ausführlichsten ist meine Rollladensteuerung bisher beschrieben, vielleicht kannst Du das als Vorlage nehmen. Ich habe Dein Add-in schon gelistet, aber der Link geht noch auf eine leere Seite.

https://github.com/snowdd1/homebridge-knx-de/wiki/Add-Ins

Vielen Dank für Deine Mitarbeit hier!

giase82 commented 7 years ago

Ok, ich schreibe was. Hast du Präferenzen zwecks Sprache? Nachdem der code Englisch dokumentiert ist, würde ich das gleich Englisch machen.

Kein Thema, gerne! Danke für deine Arbeit!

giase82 commented 7 years ago

Ach noch was: Kannst du mir grob sagen, was ich machen muss um die Doku zu erstellen? Muss ich das branchen und einen Pull-request stellen oder wie ist das? Oder schicke ich dir einfach was und du machst das dann?

snowdd1 commented 7 years ago

Hast du Präferenzen zwecks Sprache

Das ist im deutschsprachigen Wiki - Deutsch würde sich Anbieten!

was ich machen muss um die Doku zu erstellen

Auf den Link zu der Wiki-Seite klicken -> leere Seite öffnet sich -> reintippen!
oder Kopieren: Du klickst auf den Link zu einem von meinen Handlers, klickst auf edit page kopierst Dir den Quellcode (Markdown) in die Zwischenablage, gehst auf Deine Add-In Seite, fügst den Inhalt ein und änderst ihn so ab dass er passt.

Wiki = jeder darf schreiben/anpassen, ohne Pull-Request oder ähnliches.

giase82 commented 7 years ago

So dachte ich mir das auch von nem Wiki, allerdings kann ich da nix editieren... Wenn ich nach "edit" suche ist der einzige Treffer "Raoul edited this page 17 hours ago · 3 revisions"

untitled

snowdd1 commented 7 years ago

Sorry die Standardeinstellung war nicht öffentlich. Jetzt sollte es gehen!

giase82 commented 7 years ago

Ahh jetzt. Dachte schon ich bin bescheuert ;-)

snowdd1 commented 7 years ago

Jetzt wird mir auch klar warum niemand mal was da reingeschrieben hat.

giase82 commented 7 years ago

Und ich dachte mir noch "es kann doch nicht an den Rechten liegen weil für die anderen funktioniert's ja auch" :)