Verbindung Mobile App intern/extern

Bisher habe ich in meinen Smartphones immer 2x einen Server eingerichtet. Einmal intern und einmal extern über ipmagic. Ich habe nun gelesen dass man dies nicht braucht da die App (Android) selbst erkennt ob es intern oder extern ist.

Wenn ich nun die Verbindung intern über Ipmagic nutze habe ich aber keine Grafiken und Highcharts. Also auch Zuhause immer eine externe Verbindung.

Wie macht man es richtig?

Leider erkennt die App dies bisher nicht automatisch :frowning:

Wir haben dies aber bereits auf der Roadmap, dass genau soetwas kommt. Im Prinzip müssen beide Endpunkte in der App im Server einstellbar sein, und die App würde dann entscheiden, was „besser“ ist.

paresy

Hallo,

Grundsätzlich ist das eine gute Idee. Ich möchte nur zu bedenken geben, dass folgendes schonmal kein verlässliches Indiz dafür ist, dass am anderen Ende das SELBE Symcon ist, oder aber auch definitiv nicht ist:

  • ein simpler „PING“ Test (ggf. gibt es einfach im aktuellen Netz auch einen Host mit dieser IP oder ICMP ist irgendwo auf der Stecke gesperrt)
  • Vorhandensein von „Broadcast Infos“ -> die können auch fehlen
  • befinden im ggf. nur im gleichen, aber nicht selben Subnetz
  • Rückmeldung, dass es „irgendein“ Symcon auf dem Host gibt
  • an einen bestimmten WLAN AP (dessen MAC) gebunden -> mehrere APs im Haus
  • an eine bestimmte SSID gebunden (ich habe z.B. auch bei meinen Eltern die selbe SSID um alle Geräte automatisch in beiden Netzen zu haben)
  • befindet sich in einem fremden Subnetz (ggf. gibt es ein internes Routing)
  • befindet sich in keinem WLAN, also nur Mobilfunk -> vielleicht gibt es ein VPN welches Symcon erreicht
  • Antwort auf „irgendeinem“ Symcon Systemport -> vielleicht ist nur Port 3777 (über einen Reverse Proxy) erreichbar.

Also an alle Mitleser: Diese Aufgabe ist keineswegs Trivial.
Was aber geht: Eigenes Portforwarding mit (Dyn-)DNS und entsprechender Router Konfiguration. Dann ist sowohl Intern (mit Umweg über den Router - aber ohne Internet) als auch Extern euer System über die selbe Adresse erreichbar.

Jupp. Deswegen gibt es das noch nicht. Insbesondere ist es heikel, wenn man ein „IP-Symcon“ am Ende hat, welches gar nicht das eigene wäre. Dann könnte man nämlich versuchen Authentifizierungsdetails abzugreifen. Somit ist es, wie du schon sagst, nicht trivial zu erkennen, ob man „lokal“ unterwegs ist und ob es wirklich das echte, eigene IP-Symcon ist, zu welchem man sich dann verbinden wollen würde :slight_smile:

paresy

Hat sich hierzu schon etwas getan?

Mich stört es immer wieder wenn ich extern keine Highcharts sehen kann.

Das umschalten stört eher nicht so, aber warum konnte man extern keine Highcharts sehen?

Warum sollten Highcharts nicht über extern (Connect) funktionieren?
Bei mir geht es.


Michael

Das kann eigentlich nur passieren wenn du irgendwas bei Highcharts kurios eingerichtet hast. Wir unterstützen die normalen hooks und auch den User Ordner über Connect.

paresy

Highcharts laufen bei mir von Anfang an. Sind bestimmt mehr als 10 Jahre. Soweit ich mich erinnere ging es auch extern (Connectdienst) mal.
Aber bei mir sieht es leider intern/extern so aus:


Und sie liegen auch korrekt im Userordner.

Eine Idee wie es aussehen sollte damit es nicht ‚kurios eingerichtet‘ ist?

Geht es am Desktop Browser? Kannst du mal den kompilierten Inhalt von /user/Highcharts/IPS_Template.php zeigen?

Wichtig ist, das in der IPS_Template.php die externen Javascript Quellen auch mit dem gleichen Protokoll (https) wie bei der Connect-Adresse geladen werden.
Mixed-Content aus http und https mögen weder Browser noch die App.
Edit:
Ich habe die Javascript Dateien lokal im User Ordner abgelegt und entsprechend ist der Pfad relativ. Dadurch wird immer das korrekte Protokoll benutzt.
Oben der Speicherort und unten der relative Link in der IPS_Template.php

Michael

@tobiasr: Im Browser geht es. Aber da bin ich intern und greife nicht über Connect zu. (ggf über VPN)

Speicherort ist bei mir auch so, aber an der IPS_Template.php war ich noch nie dran.
Screenshot 2022-10-25 210125

IPS_Template.zip (1,5 KB)

PS: Warum kann man hier im Forum keine PHP Datei direkt runterladen? So groß sin die doch meist nicht.

In der php Datei folgende Zeile

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

um ein s bei httpS:// ergänzen.

Alternativ und imho besser, die Datei herunterladen und im User Ordner speichern.

Mit https läufts. Danke

Wie kann ich die Datei runter laden?
Im Browser Text Kopieren, in Textdatei schreiben und in jquery.min.js umbenennen?

Wie, wo jetzt?
Hier im Forum? Wenn ich die ZIP anklicke wird die direkt runtergeladen.
Wobei die ja auch die http Zeile mit der externen URL aktiv hat.
Oder meinst du die jquery.js? Die kannst du im Browser aufrufen und dann Rechstklick speichern unter. Ich habe sie dann auch direkt im webfront/user/Highcharts/js Ordner abgelegt.
Und in der IPS_Template.php dann diese Zeile:
<script type="text/javascript" src="js/jquery.min.js">
Michael

Mein ‚wie kann ich…‘ war eine direkte Frage zu:

ist dann die Antwort die ich benötige.

Edit: Läuft wie es soll. Danke tobiasr, danke Michael