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
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?