Ankündigung

Einklappen
Keine Ankündigung bisher.

NETIO Steckdosen steuern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • NETIO Steckdosen steuern

    Hallo zusammen,
    ich habe mehrere Steckdosenleisten NETIO 230B!
    Statt mich jetzt auf jeder einzeln einzuloggen möchte ich eine Seite haben auf der alle Steckdosenleisten dargestellt werden.
    Ebenso soll von hier geschaltet werden.
    Dafür wollte ich das CGI Interace benutzen.
    Leider bekomme ich das nicht hin damit die Steckdosen zu steuern.

    Ich habe versucht das mit file_get_contents zu lösen.

    PHP-Code:
    file_get_contents(http://10.10.10.10/tgi/control.tgi?login=p:test:testpassword) ; 
    Damit bekomme ich folgende Fehlermeldung:
    Warning: file_get_contents(http://10.10.10.10/tgi/control.tgi?l...t:testpassword) [function.file-get-contents]: failed to open stream: HTTP request failed! � in /srv/www/htdocs/it/test.php on line 153
    Gebe ich diese URI direkt im Browser ein funktionert das und ich kann die Steckedosen schalten wie ich möchte.
    Was mache ich noch falsch?
    Ich habe es auch schon stream_context_create versucht und da mit verschiedenen Parametern.
    Aber leider auch vergeblich.

    Hier noch der Auszug aus der Gebrauchsanleitung zum Thema cgi.
    5.3.4 CGI Steuerung:

    Das Ger¨ at NETIO-230B l ¨asst sich auch ¨uber die CGI Befehle leicht in Ihre Anwendungen integrieren.
    Die CGI Steuerung des Ger¨ates erfolgt ¨ uber einen Befehl im folgenden Format:
    http://<IPaddress>/tgi/control.tgi?<command >
    Die IP Adresse Ihres Ger¨ates ersetzen Sie mit der Sequenz Die IP Adresse Ihres Ger¨ates ersetzen
    ie mit der Sequenz
    <IP address>. Die Sequenz<command>ist der eigentliche Befehl.

    CGI Befehle:

    hash=hash Hash string Anforderung, hash wird ben¨ otigt zum Erzeugen des verschl¨usselten Passwortes.

    Der Befehl liefert zur¨uck
    <html>hash </html>.
    login=<p / c>:<user name>:<password> Login am Gera¨ t. U¨ ber Eingabe login=plain wird unverschl

    ¨usseltes Passwort gesetzt. F¨ ur verschl ¨usseltes Login erfolgt die Eingabe login=c. Die n¨achsten Parameter

    sind Login User Name und Password. R¨uckmeldewerte:

    � <html>555 FORBIDDEN</html> - Nicht eingeloggt in oder bad command.

    � <html>100 HELLO</html> - Erfolgreiches Login.

    � <html>553 INVALID LOGIN</html> - Ung¨ ultiger Benutzername / Passwort.

    � <html>554 ALREADY LOGGED IN</html> - Erneuter Versuch auf Login, obwohl bereits ein erfolgreiches
    Login besteht.
    quit= quit Logout. R¨uckmeldewert ist <html>110 BYE</html>.
    port=list / xxxx> Die Parameter list zeigt den aktuellen Port-Status im Format: <html>port1 port2 port3 port4 </html>,
    wobei port1 bis port4 ¨uber die Werte 0 f ¨ ur OFF und 1 f ¨ ur ON Status am Ausgang steht. Parameter xxxx ist eine Sequenz f ¨ ur das Wechseln des Ausgangsstaus. Anstelle des x
    Buchstaben bitte 0,1,u oder i wie beim Setzen der Ausg¨ange ¨uber Telnet Interface.
    Die Befehle k¨onnen auch in Kurzform ¨uber den ersten Buchstaben eingegeben werden. M¨ogliche
    Kurzform in Fettdruck Beispiel: Befehl
    port=list kann abgek¨ urzt werden ¨uber p=l.
    Ich sitze schon ziemlich lange an der Sache und es ärgert mich das ich es nicht hinbekomme.
    Mittlerweile habe ich mir als Notlösung ein Shell Script gemacht welches ich über PHP aufrufe.
    Damit steuere ich die Steckdosen über das Telnet Interface.
    Ich möchte aber gerne wissen wie ich das über das CGI Interface lösen kann.
    Hoffe das mir da jemand auf die Sprünge helfen kann.

    Viele Grüße
    heb


  • #2
    Der Rechner auf dem das PHP Script ausgeführt wird hat auch Zugriff auf das Netz mit der Steckdose?

    Kommentar


    • #3
      Also erstmal solltest du Anführungszeichen benutzen:

      PHP-Code:
      <?php

      file_get_contents
      ('http://10.10.10.10/tgi/control.tgi?login=p:test:testpassword');
      Und dann würde ich noch auf cURL umsteigen

      Kommentar


      • #4
        Zitat von erc Beitrag anzeigen
        Der Rechner auf dem das PHP Script ausgeführt wird hat auch Zugriff auf das Netz mit der Steckdose?
        Ja der Rechner hat Zugriff!
        Das Script mit den Telnetbefehlen liegt ja auch auf dem Rechner.

        Zitat von alxy Beitrag anzeigen
        Also erstmal solltest du Anführungszeichen benutzen:
        Sorry habe ich hier wieder zu schnell geschrieben.
        Die Anführungszeichen sind vorhanden im PHP Script.
        Allerdings doppelte aber das sollte genügen.

        heb

        Kommentar


        • #5
          Hat keiner einen Tipp für mich?

          Ist file_get_contents denn die richtige Funktion dafür oder gibt es Alternative um cgi Befehle abszusetzen?

          Habe ich noch Informationen vergessen die ihr braucht um mir den nötigen Hinweis zu geben?

          heb

          Kommentar


          • #6
            http://php.net/manual/de/book.curl.php
            Standards - Best Practices - AwesomePHP - Guideline für WebApps

            Kommentar


            • #7
              Danke, da habe ich ja erst einmal was zum lesen!
              Mal gucken ob ich da am WE zu komme.

              heb

              Kommentar

              Lädt...
              X