Open Elisedd-Bradan opened 3 years ago
Habe ähnliches bei Bewegungssensoren auf dem Mac beobachtet. Kannst du beschreiben um welche sensoren es geht, auf welchen Geräten/OS Stände usw?
Ja, klar... Das scheint kein spezielles Problem vom Mac oder Raspbery zu sein sonder eher ein prinzipielles Problem - das allerdings zweiteilig ist...
Punkt 1)
Die Aktualisierung. Bei mir läuft (oder ich muss eigentlich sagen lief...) das ganze auf einem Raspy und nicht auf einem Mac. Das Bedeutet - die Homebridge musste die Infos von der CCU holen und dann an die HomeBirdge Zentrale (in meinem Fall ein Apple TV) weitergeben.
Punkt 2) Die HomeBridge Zentrale muss mit der Aktualisierung auch etwas anfangen können... Aber dazu gleich.
Der Fall 1 hat bei mir generell nicht richtig funktioniert. Hier war es eigentlich egal ob ich einen Sensor der CCU (z.B. einen Präsensmelder (SPI)) oder einen Lichtschalter abgefragt habe. Das Grund Problem war immer das selbe. Wenn ich den Lichtschalter mit der Home App betätigt habe war alles gut und auch die Schaltzustände aller Komponenten wurden im HomeKit syncronisiert. Wenn der Lichtschalter durch etwas anderes betätigt wurde (z.B. den SPI) wurde das schon nicht korrekt angezeigt. Das gleiche galt auch für den Sensor selber: Wenn ich in der Home App war und z.B. einen anderen Schalter betätigt habe wurde der zustand der anderen Komponenten - auch des Sensors aktualisiert - wenn man nichts in der App getan hat halt leider nicht. Interessant dabei: Es schien egal zu sein wo man aktualisiert. Bedeutet: Wenn ich auf dem Handy und auf dem Mac die Home App offen hatte und auf dem Mac etwas damit gemacht habe, hat es auch das Handy aktualisiert - aber eben nur bei Aktivität.
Das ist allerdings vermutlich nur die hälfte des Problems. Nachdem ich dieses Problem gefunden hatte habe ich kurzer Hand das HAP-Homatik Plugin auf der CCU installiert - hoffend das dieses Plugin es besser mitbekommt wenn sich ein Zustand im System ändert. Das war auch tatsächlich der Fall. Das HAP-Plugin funktioniert was die Erkennung angeht zuverlässig - bedeutet Änderungen von Dimmer und Bewegungsmeldern und anderen Komponenten werden mehr oder weniger in "Echtzeit" in der Home App angezeigt.
Zum triggern lassen sich diese Events allerdings dennoch nicht verwenden. Aus welchem Grund auch immer ignoriert die HomeKit Zentrale die Änderungen. Bedeutet: Wenn ich z.B. einen Lautsprecher mit einem Bewegungsmelder in der HomeKit Zentrale einschalten will und dafür eine Automation anlege geht das nicht. Wenn ich den gleichen Lautsprecher mit einem Timer Automation der HomeKit Zentrale einschalte geht es.
Leider weiß ich zu zu wenig über das darunter liegende Protokoll - aber es kann gut sein, das diese Problem ein Apple Problem ist und weder mit der Homebridge noch mit dem HAP Plugin zu tuen hat. Während ich bei der Homebridge CCU Implementierung mal ganz vorsichtig behaupten würde "brocken by design" ist das beim HAP-Plugin vermutlich noch ein anderes Problem, an dem die HomeBrigde CCU Implementierung am ende aber auch scheitert.
Ich hab inzwischen die "zweite Hälfte" des Problems weiter analysiert. Wenn die Trigger an der HomeKit Zentrale ankommen aber nicht ausgeführt werden, dann ist das ein Apple Bug. Man kann den Bug umgehen wenn man die Automation nicht über die Automations Seite sondern über das Device anlegt. Ich hab ein Ticket bei Apple dazu aufgemacht...
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Das Polling von Sensor Werten funktioniert nicht zuverlässig - dadurch funktionieren HomeKit Automationen nicht zuverlässig.
Offenbar wird nur gepollt wenn entweder die Web UI oder oder die Home App einen request abschicken. Die HomeKit Zentrale (mit iPad und AppleTV probiert) bekommt einen Sensor Änderung nur mit, wenn die Werte mit der WebUi der Homebridge oder der Home App abgefragt werden. Dadurch funktioniert keine automation die auf CCU Sensoren basiert.
Ich vermute mal entweder müsste hier regelmäßig von der CCU gepollt werden oder ein Plugin für die CCU gebaut werden das die Werte bei Aktualisierung propagiert