Multi-homed CCU-Historian - XmlRpc transport error

Das Langzeitarchiv für HomeMatic

Moderator: Co-Administratoren

Antworten
Karamike
Beiträge: 37
Registriert: 19.12.2021, 12:22
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 3 Mal

Multi-homed CCU-Historian - XmlRpc transport error

Beitrag von Karamike » 19.11.2022, 23:20

Beim Start von CCU-Historian erkennt das Programm entweder eine IP-Adresse automatisch oder man kann sie mit devices.historianAddress setzen.

Das führt jedoch dann zu einem Problem, wenn der Rechner, auf dem CCU-Historian läuft, mehrere IP-Adressen in unterschiedlichen Subnetzen hat und die abzufragenden Geräte in diesen unterschiedlichen Subnetzen laufen. Beispiel: ein RaspberryMatic im lokalen Netzwerk und ein weiterer abgesetzt über eine WireGuard-Verbindung.

Die IP-Adressen dieser Geräte kann man mit devices.device1.address und devices.device2.address einstellen.

Für die XmlRpc-Abfrage verwendet der Historian aber in beiden Fällen immer die devices.historianAddress, egal in welchem Subnetz sich das Zielgerät befindet.

Das führt dazu, dass zwar die Abfragen an beiden Geräten ankommen (und im Prinzip auf dem gleichen Weg wieder zurückkommen könnten). Die Geräte versuchen aber augenscheinlich separate Rückverbindung zu der Adresse aufzubauen, die in der Abfrage angegeben ist (und nicht die, die in der ankommenden IP-Verbindung steht).

Bei dem Gerät, dass sich im „anderen“ Netzwerk befindet, gibt es keinen solchen Weg, und das führt beispielsweise zu der folgenden Fehlermeldung in /var/log/messages :

Code: Alles auswählen

XmlRpcClient error calling event({[methodName:"event",params:{"BidCos-RF","CENTRAL","PONG","CB2001000011000080"}]}) on http://192.168.1.2:2098/RPC2:
Nov 19 22:03:57 homematic-MS user.err rfd: XmlRpc transport error
Der Fix ist klar: manuell auf dem betroffenen Raspberry eine spezielle feste Route zurück zum Historian programmieren, die die Verbindung über das bekannte Subnetz umlenkt.

Sinnvoller wäre es jedoch, wenn der Historian bei den unterschiedlichen Geräten direkt seine Adresse im verwendeten Subnetz angeben würde, und nicht in allen Subnetzen immer die gleiche.

Diese Optionen könnten dann z.B. devices.device1.historianAddress und devices.device2.historianAddress heißen.

Im Unterschied zu ähnlichen Fragen in diesem Forum geht es hier NICHT darum, dass der Historian-Rechner mehrere IPs hat und „zufällig“ die falsche ausgewählt hat. In diesem Fall werden alle IPs verwendet. Es geht darum, dass der Historian seine Anfrage „subnetz-gerecht“ aufbaut, damit die Antwort(en) auch wieder zurückfinden.

Ist sowas bereits vorgesehen?

Benutzeravatar
Baxxy
Beiträge: 10788
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2207 Mal

Re: Multi-homed CCU-Historian - XmlRpc transport error

Beitrag von Baxxy » 19.11.2022, 23:43

Vor dem Problem stand ich seinerzeit auch mal.
Habe dann entsprechend auch die jeweilige "Rück-Route" etabliert.
Karamike hat geschrieben:
19.11.2022, 23:20
Die Geräte versuchen aber augenscheinlich separate Rückverbindung zu der Adresse aufzubauen, die in der Abfrage angegeben ist (und nicht die, die in der ankommenden IP-Verbindung steht).
Naja, so ähnlich.
Der Historian meldet sich nur als "Client" mit seiner Adresse an den Schnittstellen der Zentrale an. Die weiß dann das sie Event X an Client Y senden muss. Aktiv abgefragt werden nur die SysVars, dazu braucht es dann auch keine "Rück-Route".

Wäre aber auf jeden Fall eine nützliche Erweiterung. :)

Mathias
Beiträge: 1783
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 259 Mal
Kontaktdaten:

Re: Multi-homed CCU-Historian - XmlRpc transport error

Beitrag von Mathias » 26.11.2022, 18:54

Ich refenziere mal den Eintrag auf GitHub.

Antworten

Zurück zu „CCU-Historian“