thkl / homebridge-homematic

Homematic plugin for homebridge: https://github.com/nfarina/homebridge
179 stars 49 forks source link

Homekit Updates von Aktoren/Sensoren sehr langsam - Licht schaltet erst nach mindestens 5 Sekunden #378

Closed glowfishDE closed 5 years ago

glowfishDE commented 5 years ago

Hi,

ich nutze RaspberryMatic von Jens in der aktuellsten Version (https://github.com/jens-maus/RaspberryMatic/releases/tag/3.41.11.20181222) und Homebridge mit dem HomeMatic Addon (beides ebenfalls in der aktuellsten Version).

Leider aktualisiert meine Apple Home App auf dem iPhone die Geräte erst nach 1-2 Minuten. Meist steht sogar da "Gerät antwortet nicht".

Wenn ich dann einen Status habe und z.B. ein Licht schalten will, dauert es ganze 5 Sekunden bis dieses angeht. Wenn ich alle Lichter im Haus einschalte braucht es fast 1,5 Minuten bis alle Lichter an sind.

Aus dem RaspberryMatic WebGUI als auch per XML API kann ich einen State sofort triggern. Z.B. über:

http://<IP-RaspberryMatic-CCU-WebGUI/addons/xmlapi/statechange.cgi?ise_id=1234&new_value=true

Das geht wirklich sofort wie es sein sollte. Homebridge hingegen kann aus irgendeinem Grund nicht schneller schalten. Muss ein Bug sein.

Viele Grüße Stoney

glowfishDE commented 5 years ago

Update: Fehler scheinbar gefunden

Auf dem Homebridge Server musste ich in der Datei /usr/local/lib/nod_modules/homebridge-homematic/HomeMaticRPC.js den Port für den BidCoS-RF wie in auf dem Raspberrymatic in der Datei /etc/config/InterfacesList.xml entsprechend auf Port 32001 umstellen da das Raspberrymatic Image die XMLRPC Calls wohl nicht auf 2001 sondern 32001 verarbeitet.

Check (Achte auf den xmprpc_bin Teil!)

/etc/config/InterfacesList.xml

<?xml version="1.0" encoding="utf-8" ?>

BidCos-RF xmlrpc_bin://127.0.0.1:32001 BidCos-RF VirtualDevices xmlrpc://127.0.0.1:39292/groups Virtual Devices

Edit: /usr/local/lib/nod_modules/homebridge-homematic/HomeMaticRPC.js

Change to this: this.interface = "BidCos-RF."; this.ccuport = 32001;

Jetzt scheints sauber flott zu gehen 👍

VG Stoney

sebastianhegge commented 5 years ago

Ich habe genau das gleiche Problem, allerdings hat bei mir die Änderung der Datei /usr/lib/node_modules/homebridge-homematic/HomeMaticRPC.js nicht zum gewünschten Erfolg geführt. Auch bei mir läuft ein RaspberryMatic und die /etc/config/InterfacesList.xml auf diesem berichtet von Port 32001 ...

mache ich etwas falsch?

glowfishDE commented 5 years ago

Hi,

bitte prüf mal ob du irgendwo noch Firewallseitig irgendwas blockierst. Du musst dir im Raspberry Matic auch die Ports und Netze noch entsprechend konfigurieren.

Das geht in Einstellungen -> Systemsteuerung -> Firewall konfigurieren.

Da habe ich folgendes eingetragen:

Firewall Richtlinie: Ports blockiert Homematic XML-RPC API: Eingeschränkt Remote Homematic-Script API: Eingeschränkt Mediola-Zugriff: Eingeschränkt

Port Freigabe: 2001; 32001

IP Adressen für den eingeschränkten Zugriff:

192.168.0.1; 192.168.0.0/16; fc00::/7; fe80::/10; 10.0.0.0/24

(Die 10.0.0.0/24 ist von mir weil ich in meinem Heimnetz 10er IP Adressen verwende).

Zur Not bitte auch mal gucken ob du per Telnet auf die 32001 der Homematic Raspberry CCU von deinem Homebridge aus drauf kommst.

Oft hilft auch einfach mal nur alles frisch durchzubooten.

Und aktuell gibts auch einen Bug im neuen AppleTV tvOS 12.1.2 vom 07.02.19 der dazu führt, dass Siri dir auf der AppleWatch (oder sporadisch wohl auch auf dem iPhone) einen Schaltbefehl zwar ausführt aber danach immer gleich sofort mit "ohje, etwas stimmt hier nicht" quittiert.

Hoffe ich konnte bisschen helfen VG Stoney

sebastianhegge commented 5 years ago

Der Tipp das ganze mit Telnet zu testen war gut. Nach div. hin und her inkl. Reboot beider Systeme und Freigabe der von Dir genannten Ports läuft es jetzt. Bin mir nicht sicher, ob es am Reboot oder der expliziten Port-Freigabe liegt. Hatte das Gefühl, das die Firewall trotz "Ports offen" und alles auf "Vollzugriff" sich nicht so verhält. Auch scheint der xmprpc_bin auf dem RaspberryMatic trotz Dual-Stack nur an die IPv4 gebindet zu sein. @thkl gibt es eine Möglichkeit den Port in der Config einstellbar zu machen, so dass die Setting nicht durch ein Update zerstört wird? Und auch eine Doku dieses Sachverhaltes wäre toll, so dass Leute mit RaspberryMatic das entsprechend umstellen können ... Auch wäre toll darauf hinzuweisen, dass der xmprpc_bin nur auf IPv4 läuft und man diese Adresse in die Config von Homebridge eintragen sollte, nicht die IPv6. Vielen Dank @glowfishDE und natürlich auch an @thkl für die tolle Arbeit!

sebastianhegge commented 5 years ago

@thkl wäre sowas möglich?

@thkl gibt es eine Möglichkeit den Port in der Config einstellbar zu machen, so dass die Setting nicht durch ein Update zerstört wird? Und auch eine Doku dieses Sachverhaltes wäre toll, so dass Leute mit RaspberryMatic das entsprechend umstellen können ... Auch wäre toll darauf hinzuweisen, dass der xmprpc_bin nur auf IPv4 läuft und man diese Adresse in die Config von Homebridge eintragen sollte, nicht die IPv6.

thkl commented 5 years ago

Port geht in der Config mit local_port xmlbin wird (zumindest im Dev Branch) nicht mehr benutzt (wird auch von RM nicht mehr unterstützt)