Eigenes Webinterface

nicl4s

Neuer User
Mitglied seit
24 Jan 2011
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hi,
Ich habe jetzt schon das zweite Mal Freetz auf eine FB gespielt, und bin wieder total zufrieden!! An dieser Stelle erstmal vielen Dank an die Menschen die sich hiermit wirklich Mühe geben!! Nun zu meinem Problem ich möchte gerne ein kleines Webinterface schreiben welches die LEDs der Box steuert. Damit ich über meinen selbst gebauten Dämmerungsschalter zwei Relais schalten kann. Ich weiß das es eine Möglichkeit mit USB und einer Relaiskarte gibt aber ich finde die LED Methode einfach einfacher. Ich habe mich ein bisschen schlau gemacht und weiß auch Daseine Bos mit dem Befehl "echo 7,2 /dev/null/" oder ähnlich die LEDs schaltet ich hab mir die Befehle genau aufgeschrieben. Danach hab ich ein kleines CGI gebaut, welches ein je nach Wahl anderes CGI aufruft (mittels "href"). Diese führt dann eine Shell aus und springt wieder zum alten CGI zurück. Ich habe diese Scripte dann unter /usr/www/all/CGI-bin/ eingefügt und ausprobiert bekomme aber immer nur einen weißen Screen und ich weiß nicht was ich falsch mache. Einmal hat ein Script funktioniert jedoch nicht die anderen aufgerufen und ich habe zum Testen gleich das Script den Shell Befehl ausführen lassen und es ging.
Naja ich hoffe ihr könnt mir helfen!
nicl4as
 
Ja ich habe die Anleitung gelesen aber ich habe ja kein komplettes Paket geschrieben und brauche auch kein rc.Script und eigentlich auch keine config Datei. Deshalb dachte ich das mir das nicht weiterhilft... Aber ich werde mir das nochmal genau ansehen! Erfahrungen natürlich Posten.
MfG Nicl4as
 
Du kannst das "modreg" natürlich auch in rc.custom ausführen. Dann musst du die Verlinkung halt auch selbst vornehmen.

Gruß
Oliver
 
Ich habe das jetzt ausprobiert habe die cgi-Datei in das Verzeichnismod/usr/lib/cgi-bin/ geladen und per modreg cgi fritzled.cgi fritzled eingebunden. Im Freetz Menü wird mir das auch angezeigt, jedoch kommt dann der Fehler: Fehler: Das Paket 'fritzled' ist nicht konfigurierbar......Am besten wäre es wenn ich die cgi so wie FreetzWOL aufrufen kann, auf einem eigenen Port und so weiter...
mfg Nicl4s

P.S.:Im Anhang nur die Testdateien!!!!
 

Anhänge

  • fritzled.zip
    619 Bytes · Aufrufe: 4
Probier mal so:
Code:
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
. /usr/lib/libmodcgi.sh

cgi_begin 'Fritz!LED'

sec_begin 'Test'
cat <<EOF
<form action="/cgi-bin/test.sh">
<p style="margin: 2em 20%;">
<input type="submit" value="test">
</p>
</form>
EOF
sec_end

cgi_end
Code:
modreg pkg fritzled "FritzLED"
modreg extra fritzled "Ausführen" 2 fritzled
Wobei deine test.sh auch unter /cgi-bin muss. Außerhalb kann man nichts ausführen.

Gruß
Oliver
 
Das funktioniert leider auch noch nicht. Der Befehl modreg versucht dann doch das CGI in Freetz einzubinden oder?? Vielleicht fällt dir ja noch was ein?!
MfG nicl4s

Edit: Vielleicht kann man das ja genauso zurecht basteln wie bei FritzLoad.
 
Zuletzt bearbeitet:
Ich hab das ausprobiert und bei mir hat es funktioniert. Vielleicht hab ich es jetzt falsch aufgeschrieben. Aber es ging auf alle Fälle.

Gruß
Oliver
 
Auch mit meinem Script und so?? Schreib mir noch ganz genau die Pfade und Verzeichnisse und alle modreg Befehle auf die ich benutzen muss am besten mit Bedeutung wie diese funktionieren. Wäre sehr nett und hilft vielleicht auch anderen die sich mit etwas ähnlichem beschäftigen.??
MfG nicl4s

EDIT: Ich habe es jetzt geschafft meine cgi scripte in Freetz Extra einzubauen, aber ein Script will einfach nicht funktionieren vielleicht könnt ihr mir ja helfen:
Code:
#!/bin/sh

PATH=/bin:/usr/bin:/sbin:/usr/sbin
. /usr/lib/libmodcgi.sh
TITLE='FritzLED'

cgi_begin "$TITLE" extras
sec_begin "LED"
cat <<EOF
<p>
LED Steuerung: LED wurde angesteuert
</p>
EOF
echo 7,1 >/dev/new_led
cat <<EOF
<div class="btn">
<form class="btn" action="fritzled">
<input type="submit" value='Zurück'></form></div>
EOF
sec_end

cgi_end
 
Zuletzt bearbeitet:
Fritz!Led

So nach vielem hin und her hab ich mein Projekt jetzt fertiggestellt. @Olli: Bei Newbies wie mir hättest du vielleicht noch anmerken können das man am besten einen Linux Rechner nimmt um CGI's und Shell-Scripte zu schreiben. ;D
So nun aber zu meinem Projekt ich habe für alle mir bekannten LED's eine CGI geschrieben die sich mit einer anderen CGI öffnen lasse. Näheres in der ReadMe oder schaut euch einfach den Code an! Ich habe alle Dateien mal als ZIP gepackt und als Anhang hochgeladen. Ich freu mich übrigens sehr über Rückmeldungen in jeglicher Form.
Auch nochmal vielen Dank für die gute Hilfe.
mfg Nicl4s
 

Anhänge

  • Fritz!Led.zip
    8.5 KB · Aufrufe: 19
Bei Newbies wie mir hättest du vielleicht noch anmerken können das man am besten einen Linux Rechner nimmt um CGI's und Shell-Scripte zu schreiben. ;D

Das muß nicht unbedingt sein. es reicht ein Linux konformer editor , wie z.B. notepad++
 
Das muß nicht unbedingt sein. es reicht ein Linux konformer editor , wie z.B. notepad++
Ja, so hab ich es dann auch gemacht mit UltraEdit. Aber es hat schon eine ganze Weile gedauert bis ich auf die Idee gekommen bin. :D
 
Bei mir will es einfach nicht funktionieren :-(

Ich bin imho nach Anleitung vorgegangen, erhalte folgende Meldung in der mod.log :
cat: can't open '/mod/var/cache/menu.1107/menu/pkg/fritz!led.index': No such file or directory

hat jemand eine Idee?
 
Moin
Faszinierend, würde Spocky jetzt sagen, ich ziehs mir mal rein.
Sind die LED-Codes nach Boxtyp gefiltert?
Ist eine Anbindung an crond bzw. crontabs vorstellbar?
Ich such auch noch nach den Codes für die roten LEDs, filesystem_mount_failure kenn ich zwar, doch die für rote Power-LED und rotes dauerleuchten der Info-LED nicht.
(Boxtyp 7360SL)

...dann schaun wah mal...
1.) Nach Anpassung von install.sh und natürlich dem Kommando in rc.custom Box neugestartet.
2.) Siehe da Link ist im freetz-WebIf vorhanden, aber... er verweist auf: http://fritz.box:81/cgi-bin/status.cgi
fritzled01.jpg <---<< Keine individuelle Konfigseite also :(
3.) Jetzt bist du wieder dran, stell mir Fragen.

Fehlermeldung im mod.log: cat: can't open '/mod/var/cache/menu.2708/menu/pkg/fritz!led.index': No such file or directory
(Der Pfad/Datei /mod/var/cache/menu/pkg/fritz!led ist allerdings vorhanden)

Ohne Neustart der Box wird der Eintrag übrigens so entfernt: modunreg extra Fritz!Led

PS: Screenshots wären toll....
 
Zuletzt bearbeitet:
Ob Ausrufezeichen in Dateinamen eine gute Idee sind!?

Gruß
Oliver
 
War nicht meine Idee, konnte aber auch keine negativen Auswirkungen feststellen.
Meinst du, es erzeugt dann sowas wie dieses "menu.2708" ?
 
Windows XP stört sich nicht an dem Ausrufezeichen, habe es trotzdem mal entfernt, jedoch bleibt die Fehlermeldung.
 
Ich hab das auf meiner 7390 mal ausprobiert...

zip entpackt, nach /var/media/ftp/fritzled kopiert, chmod +x fritzled.cgi und dann das modreg extra fritzled ...

Das Webinterface war danach problemlos aufrufbar.

Gruß
Oliver
 
Fertisch

Brauch ich garnicht (chmod), denn auf einer NTFS formatierten USB-Speichergeschichte ist alles ausführbar.
Aber ich machs nochmal wie du es gemacht hast, vielleicht gehts ja nur nicht vom USB.Stick.

Edith sagt:

So gehts:
install.sh
PHP:
#!/bin/bash
#Installationsscript
#Hier USB Pfad angeben...Ordnername beibehalten
cp -r . /var/mod/usr/lib/cgi-bin/fritzled
#Registrierung für das Freetz-Webinterface
modreg extra fritzled LED-Steuerung 0 fritzled
...dann kann das Verzeichnis indem die CGIs (nach dem Entpacken) liegen heissen wie es will.
fritzled01.jpg
Die Kommandos echo bla bla > /dev/new_led kann ich dann selber in led-ctrl Kommandos umwandeln.
Anhang anzeigen fritzled.tgz Kommando zum entpacken: tar xzf fritzled.tgz
...nie aufgeben!
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,284
Beiträge
2,249,439
Mitglieder
373,877
Neuestes Mitglied
Bbj
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.