Open ctschach opened 6 years ago
Okay, bin ein wenig weiter...aber dennoch brauche ich etwas Hilfe:
An welcher Stelle kann ich auf das Homebridge-Accessory zugreifen. In der Datei "service-knx.js" unter "loadServiceData" hole ich mir das Accessory als lokale Variable:
this.platformAccessory = platformAccessory;
Dieses wir ja dann beim Aufruf von "new CharacteristicKNX" mit übergeben. So gesehen steht mir "platformAccessory" innerhalb der Characteristic's zur Verfügung.
Ist das denn das korrekte Accessory?
Ich bin so weit, das mit für den Sensor (z.B. Temperatur) in der Zwischenzeit das Temperatur-Diagram angezeigt wird, allerdings werden dort keine Daten dargestellt. Ich vermute, dass ich hier mit dem falschen Accessory arbeite...
Giving up with this approch...so I close this issue....
Sorry dass ich noch nicht geantwortet hatte. Klingt eigentlich interessant, habe ich allerdings noch nicht selbst benutzt.
Hast Du Deine Version als Fork gespeichert? Würde mir das gerne mal ansehen (voraussichtlich am Wochenende)
Schau mal hier:
https://github.com/ctschach/homebridge-knx
Leider habe ich noch das problem, dass der History Graph in Eve zwar angezeigt wird, die Daten laut Debug auch hinzugefügt werden (auch in der persist-storage datei), jedoch in Eve werden keine Measurements angezeigt.
Stehe da leider ein wenig auf dem Schlauch...
Sobald es funktioniert würde ich natürlich die anderen ServiceTypes einbauen.
So, es funktioniert....WOW...kann es selbst kaum glauben.
Diese doofe Device Seriennummer. Die muss bei eve für jedes Device eindeutig sein, damit die Daten korrekt zugeordnet werden können.
Also entweder im Config definieren oder - wenn nicht angegeben - wird jetzt eine eindeutige Seriennummer erstellt sobald der History Service aktiv ist.
Habe mal reingesehen, aber es noch nicht ausprobiert. Warum nimmst Du nicht die Service SUB UUID als Seriennummer? Die ist automatisch erzeugt und persistent, bis man den Service aus der config löscht.
Bin total gespannt das mal zu Hause auszuprobieren! Super Arbeit!
Ja, ich bin auch gespannt....die meiste Zeit habe ich damit verbracht, "Deine" Struktur zu verstehen und zu sehen, wo und wie man das am besten einbaut.
Das mit der SUB UUID als Device Serial ist natürlich eine Möglichkeit...kann ich ja nochmal ändern....
Das hier wäre dann nochmal was für Dich :-)
Für die "Door" History muss man zusätzliche Characteristics von Eve aktivieren. Hier ein beispiel:
// Used in Eve Door this.createService('ContactSensor', hap.Service.ContactSensor.UUID, [ hap.Characteristic.ContactSensorState, eve.Characteristic.TimesOpened, eve.Characteristic.OpenDuration, eve.Characteristic.ClosedDuration, eve.Characteristic.LastActivation ])
https://github.com/ebaauw/homebridge-lib/blob/master/lib/EveHomeKitTypes.js
Okay, alle offenen Probleme sind in meinem Fork gelöst. Ich habe nun auch eine simple Möglichkeit gebaut, mit der man einfach eigenen Services und Characteristics erstellen kann.
Wer Interesse hat, einfach mal reinschauen: https://github.com/ctschach/homebridge-knx
Hier auch mal die Doku mit ein paar schönen Screenshots (Bilder sagen ja mehr als 1.000 Worte):
https://github.com/ctschach/homebridge-knx/blob/master/knx_config-fakegato-history.json.md
Im Moment versuche ich mich daran, FakeGatoHistory als CustomHandler einzubauen:
https://github.com/simont77/fakegato-history
Meine Idee war eigentlich ganz simpel: Ich erstelle einen CustomHandler, der den entsprechenden Wert in die History schreibt. Im meinem Fall dann einfach "TemperatureHistory".
In der index.js definiere ich FakeGateHistoryService als globale Variable und in der Funktion "registry" definiere ich FakeGateHistoryService entsprechend der Anleitung.
In meinem CustomHandler rufe ich dann im constuct(knxAPI) die funktion auf:
this.loggingService = new FakeGatoHistoryService(historyType, this.accessory, {size: this.log_days*24*6, storage:'fs'});
Allerdings fällt er hier auf die Nase, weil FakeGateHistoryService nicht bekannt ist.
Mit ist klar, dass das sicherlich eine generelle JavaScript frage ist, dennoch wäre eine Hilfe hier total lieb :-)