Zugriff auf IPS dynamisch ermitteln

Hallo,

ich würde im IvonaTTS Modul gerne anbieten, dass man Dateien auch automatisch im „…/webfront/user/IvonaTTS“ Verzeichnis anlegen kann, und dann als Rückgabewert „http://<ip/hostname vom IPS>:<Port vom IPS>/user/IvonaTTS/<datei>.mp3“ bekommt.
Natürlich würde ich die Dateien dann nach 15 Minuten ohne Zugriff wieder löschen…

Den Pfad wo ich das „webfront“ Verzeichis finde kann ich ja mit IPS_GetKernelDir() ermitteln.

Wie bekomme ich aber die IP bzw. den Hostnamen und den Port raus?
Sys_GetNetworkInfo() ist ja auf dem Raspberry noch nicht implementiert: „Warning: This function is not available on this platform“.

Irgendwelche Vorschläge?

Danke,
Thorsten

Das ist schwierig bis unmöglich, da du ja mehrere WebServer haben kannst… Eher wäre die Frage, wann du diese „Antwort“ liefern willst?

paresy

Das Thema hatten wir letzten schon mal irgendwo…
Eine Variante wäre wohl einfach die Webserver-Instanz in den Einstellungen des Moduls aufzunehmen und dann dort den Port auszulesen (+SSL an/aus).
Sofern der nicht existiert / gesetzt wurde, fest Port 3777 nutzen.
Setzt aber voraus das GetNetworkInfo irgendwann funktioniert :wink:
Michael

Hostname:

echo exec("hostname");

IP mit Linux:

echo exec("hostname --ip-address");

Da warte ich lieber auf Paresy :wink:
Sonst muss ich das für jedes OS sep. umsetzen. Aber mein Project ist eh gestorben wo ich das brauchte.
Michael

Hi,

Beispiel:


$tempfile = IVNTTS_SaveHTTPFile(4711,"Ein ganz wichtiger Text.");

Wenn dies aufgerufen wird, soll der Text „Ein ganz wichtiger Text.“ via Ivona in ein MP3 verwandelt werden und unter „…/webfront/user/IvonaTTS/<hash des Textes>.mp3“ gespeichert werden.

$tempfile soll dann den string „http://<ip/hostname vom IPS>:<Port vom IPS>/user/IvonaTTS/<hash des Textes>.mp3“ enhalten.

Die könnte man dann z.B: direkt ans Sonos Modul übergeben und der Endanwender müsste nichts mehr konfigurieren.
Wäre meiner Meinung nach vor allem für die Symbox echt sinnvoll!

Natürlich könnte man das alles als Parameter im Ivona Modul ablegen „Pfad wo es hingeschrieben wird“ und prefix („http://<ip/hostname vom IPS>:<Port vom IPS>/user/IvonaTTS“) wo es gelesen werden kann. Schön ist das aber nicht. Zumal meiner Meinung nach nicht alle Anweder diese Daten kennen…

Ich gehe hier mal vom DAU aus.

Exakt meine Meinung.

Gruß,
Thorsten

Sagen wir es mal so… Deine Idee klappt nur solange, wie du eine Netzwerkkarte hast, und keine zwei Netzwerke. Und spätestens unter Windows, wenn du VMWare drauf hast mit mehreren Adaptern, weißt du nicht welche die „echte“ IP-Adresse ist.

Aber wenn man die Sys_GetNetworkInfo Funktion hätte, könnte man mithilfe der Sonos Adresse zumindest mehr oder weniger die korrekt IP-Adresse herausfinden.

paresy

Oder… wenn wir dann die dynamischen Settings-Form haben, alle IPs als Auswahlliste anbieten.
So wie z.B. im HM-Socket.

Noch mehr Arbeit für Paresy :wink:
Michael