Hallo und danke für die Aufnahme hier.
Ich habe eine Refoss P11 (eine Mess-Steckdose mit TASMOTA 12.4.0). Ich logge damit die Leistungskurve eines Kühlschrankes. Das Gerät ist in meinem lokalen WLAN. Aus einem PHP-Skript schicke ich ihr ein HTTP-Request mit cmnd=Status 10 um die aktuell gemessene Leistung zu erhalten. Das alles funktioniert prima, solange das PHP-Skript auf meinem lokalen Server auf meinem Laptop läuft. (Die Antwort von der Mess-Steckdose kommt, und ich kann sie speichern.) Der Laptop ist im gleichen WLAN wie die Steckdose.
Sobald ich das PHP-Skript aber auf einem externen Server (bei Strato) laufen lasse, funktioniert der HTTP-Request nicht mehr. Vermutlich weil der externe Server die Steckdose nicht findet. Die Netzverbindung wird nicht geöffnet. Ich weiß nicht wie ich die adressieren muss, vielleicht kann jemand helfen.
Hier der relevante Ausschnitt aus dem PHP-Programm:
$url= '/cm?user=admin&password=xxxxxxxx&cmnd=Status%2010'; // user und passwort waren so eingestellt,
$host= '192.168.1.33'; // die adresse im lokalen WLAN
$port= 80;
@$fp= fsockopen($host,$port,$errno,$errstr,6); // Netzwerverbindung öffnen; (6 ist Timeout-Wert)
// $fp bleibt FALSE, das restliche Skript wird nicht ausgeführt ...
if($fp)
{
$request = 'GET '.$url.' HTTP/1.1'."\r\n";
$request.= 'Host: '.$host."\r\n";
u.s.w
Alles anzeigen
Wie gesagt, auf dem lokalen Server funktioniert alles. Da kann ich auch das Eintreffen des Kommandos live in der Console des TASMOTA-Gerätes mitverfolgen. Von extern kommt kein Kommando mehr an. Vermutlich liegt der Knackpunkt am $host, da weiß ich nicht was sich ändert, wenn der anfragende Server nicht mehr im gleichen WLAN sitzt, sondern von extern kommt.
Danke im Voraus!