Habe einen 4-Port Powerswitch, der auf 4 unabhängigen Kanälen einen 230V Verbraucher schalten kann. Das Gerät wird an das IP Netzwerk angeschlossen und kann entweder über ein integriertes Interface oder mit direkten HTTP Befehlen gesteuert werden.
Die 4 Switch werden mit P60 - P64 angesprochen, 1=ON 0=OFF
Die Befehlssequenz wird vom Hersteller vorgegeben.
Also ich bin nicht so der PHP-Crack, aber wie lautet denn dein Dateiname? Ich behaupte mal das kann so nicht gehen.
fopen (PHP-Manual) möchte den namen der Datei, die du öffnen willst (f-open -> file open). Parameter sind da nicht vorgesehen soweit ich weiss. Was genau ist set.cmd? Was steht da drin? Und in welchem Zusammenhang hast du das im Forum gefunden? Und was genau willst du damit erreichen? Vielleicht gibts ja ne andere Lösung… WWWReader verwenden vielleicht?
Hallo,
also fopen() akzeptiert schon eine URL als Dateinamen, wenn die PHP Option allow_url_fopen gesetzt ist. gokart, das sollte bei dir aber standardmäßig der Fall sein, wenn du nicht irgendwo noch eine php.ini hast, die es umdefiniert.
So wie es aussieht, hast du den String $url syntaktisch richtig angelegt.
Statt fopen($url,‚r‘) könntest du readfile($url) probieren. Wird aber m.E. das gleiche Ergebnis liefern.
Die Fehlermeldung 'HTTP1.0/401…" deutet eher auf ein Zugriffsproblem hin. Der Webserver erhält deinen Request, aber lehnt ihn ab. Vielleicht hast du dich bei Benutzername/Passwort vertan??
Habe die Funtkionen file_get_contents, readfile und WWWReader getestet. Alle Aufrufe bringen in etwa die gleiche Fehlermeldung zurück.
Das Gerät reagiert auf den Aufruf, führt aber die Schaltfunktion nicht aus.
Habe den IP-Traffic analysiert und festgestellt, dass für eine erfolgreiche Schaltung im Explorer mehrere Datenpakete ausgetauscht werden. Schwierig zu analysieren was da läuft.
Der Hersteller will mir aber eine Firmwareanpassung vornehmen, damit ich mit einer Telnet Session arbeiten kann.
Warte jetzt mal auf diese Lösung. Bis dahin werde ich diese Anfrage mal abschliessen.
Wenn Du nicht bis zur Firmwareanpassung warten willst, wäre die Curl-Erweiterung für PHP vieleicht was ?
Einfach mal in der Suche Curl eingeben.
Damit kannst du inclusive https, Passwortgeschütze put oder get Anfragen, bedarfsweise mit Cookies an Server richten und eigentlich automatisiert all das machen, was sonst „händisch“ gemacht wird.
Ist natürlich etwas tricky, sich da reinzufuchsen, lohnt sich aber m.E. sehr: mache damit E-Mail abfragen und Versand, SMS-Versand etc.