Text2Speech REMOTE unterstützt nur IP-Nr. und keinen Hostnamen

Begonnen von kaihs, 03 Juli 2016, 17:48:16

Vorheriges Thema - Nächstes Thema

kaihs

Bei der Definition des Zugriffs auf eine Remote Instanz wird aktuell für die Adresse der Remoteinstanz nur eine IPV4 Adresse unterstützt.

Ich möchte gerne einen Hostnamen verwenden, weil die IP Adressen bei mir nicht statisch sind und auch die aktiven Interfaces (LAN/WLAN) wechseln.

Ursache ist die Zeile 191, diese habe ich erstmal von

  if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ ) {

in

  if($dev =~ m/^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/ || $dev =~ m/[^:]+:[0-9]+/) {

geändert.

Das funktioniert dann nur, wenn auch eine Portnummer mit angegeben wird.

Ich bin mir nicht sicher, wie man zweifelsfrei eine Remoteaddresse von einem Audiodevice unterscheiden kann. Besser wäre wahrscheinlich, das durch einen zusätzlichen Parameter explizit zu unterscheiden.

Ergänzung:
Damit Geräte mit mehreren IP-Adressen zuverlässig angesprochen werden, muss beim Verbindungsaufbau noch der Parameter MultiHomed gesetzt werden:


  if($hash->{SSL}) {
    eval "use IO::Socket::SSL";
    Log3 $name, 1, $@ if($@);
    $conn = IO::Socket::SSL->new(PeerAddr => "$dev", MultiHomed => 1) if(!$@);
  } else {
    $conn = IO::Socket::INET->new(PeerAddr => $dev, MultiHomed => 1);
  }
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter