Fritz!Box WLAN mittels URL ein/ausschalten

Begonnen von ritchie, 11 Juli 2013, 09:11:52

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

ich suche derzeit eine Möglichkeit das WLAN meiner Fritzbox
via url (CGI) Script ein und auszuschalten.

Alle Beispiele die ich im Netz finde sind nicht mehr aktuell und
werden von meiner Fritzbox  (7570) geblockt.

Eine Telnet Verbindung will ich nicht ständig offen halten, da ich das
als Sicherheitslücke sehe.

Hat jemand eine Idee, wie man das hin bekommt.

Gruss R,
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

PeMue

Hallo ritchie,

eine telnet Verbindung brauchst Du auch nicht. Per qx() kannst Du auf den ctlmgr in der Fritz Box zugreifen und gemäß Anleitung aus- oder anschalten.
Der Befehl würde in etwa so
qx(ctlmgr_ctl r wlan settings/ap_enabled); für das Auslesen des aktuellen Status bzw.
qx(ctlmgr_ctl w wlan settings/ap_enabled 1); für das Einschalten lauten.

Edit: Wer lesen kann ist im Vorteil. Habe leider den Untertitel überlesen. Vielleicht geht aber hierfür fhem2fhem ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

ritchie

Hallo PeMue,

da habe ich mich wohl nicht klar genug ausgedrückt. Was dann zu Missverständnissen führt. Sorry, mein Fehler.

Fhem läuft leider nicht direkt auf meiner Fritzbox, wenn dem so wäre, wäre
Deine Info die Lösung.

Ich habe einen separaten Raspberry Pi und will mit diesem das WLAN steuern.

Hintergedanke:
Sicherheitsaspekt, das WLAN soll nur in Betrieb sein, wenn ich/wir in der Wohnung anwesend (eigentlich die Handys mittels Bluetooth) sind.

Nachts erfolgt ebensfalls eine Abschaltung des WLAN's.

Leider ist die Nachschaltung der Fritzbox nicht derart flexible.

Frühere Tips (so um 2005) sind alle nicht mehr mit dem neuen OS der Fritzbox möglich, was ja
auch gut so ist.

Das mit dem FHEM2FHEM muss ich mir erstmal durchlesen.

Wäre so was in der Art eine Lösung:

http://www.fhemwiki.de/wiki/FRITZFON


Gruss R.





IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

fiedel

Hi Ritchie,

du suchst wahrscheinlich sowas hier:

http://www.ip-phone-forum.de/showthread.php?t=196309

Das Guest- WLAN kann man damit schon schalten und man kann selbst damit experimentieren und neue Funktionen hinzufügen. Es gibt auch eine Lösung zwischen "alter und neuer" (LUA) Login- Methode umzuschalten. Das könnte für deine Box interessant sein. Ich hatte mich in die Technik mal ein wenig eingelesen und auch etwas gebastelt (DECT On/Off, Call Phone). Das WLAN fehlt mir auch noch, aber ich hatte bisher noch keine Zeit... ;o)

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

ritchie

Hi,

was soll ich sagen. Ich habe jetzt nicht so die Kenntnisse von php
und fange erst gerade mit perl an.

da liebe ich solche Fehlermeldungen innerhalb der Ausführung:
ZitatPHP Notice:  Undefined variable: message in /home/pi/php/fritzbox_guestwlan_on_off.php on line 130
ERROR: Login failed with an unknown response.pi@fhem (response.pi@fhem) ~/php $
Wenn ich das hier eingebe...

php ./fritzbox_guestwlan_on_off.php 1


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

fiedel

Na das sieht doch schon mal ganz gut aus! ;o) Mit PHP hat das bis hier hin auch noch wenig zu tun.

In der fritzbox_user.conf.php muss das Passwort richtig gesetzt sein (zuvor in der FB ein PW einrichten!):

# set to your Fritz!Box password (defaults to no password)
$this->config->setItem('password','1234');

Das Passwort ist hier im Beispiel 1234.

Die Login- Methode wird so ausgewählt: Wenn beim normalen FB- Login ein Benutzername eigegeben werden muss (neuere Firmware) dann muss "true" rein. Wenn kein Benutzername angefordert wird (ältere FW ohne LUA) muss "false" rein:

# use the new .lua login method in current (end 2012) labor and newer firmwares
# set to "true" for use .lua
$this->config->setItem('use_lua_login_method', true);


Viel Erfolg!
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

ritchie

Hallo Fiedel,

danke für den Tip. Ich vermute jedoch auch noch, das ich gestern abend die Dateien nicht an den richtigen Ort
für PHP abgelegt habe. Hier steht ja im Quellcode das Verzeichnis "__DIR__" für die Suche dieser Datei.

Und die Datei wird durch

 require_once('fritzbox_api.class.php');
 

mit eingebunden. Alle Dateien liegen derzeit bei mir in einem Verzeichnis (/home/pi/php) derzeit.

Eine Fehlermeldung bekommen ich nicht.

Wenn meine Fritzbox bei der Anmeldung auf die Konfigurationsseite nur ein Passwort abfragt, habe ich dann das "alte" Verfahren.
Da ich nicht weiss, welchen Benutzer ich hier eintragen soll, ausser vielleicht "admin".


$this->config->setItem('username', false);


Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

fiedel

Hi Ritchie,

wenn du nur das PW zur Konfig. eingeben musst, hast du höchstwahrscheinlich die ältere Version, aber schreib auch mal welche es wirklich ist! Das siehst du in der FB- Oberfläche bei Übersicht oder so. Dann kannst du das mit dem Username unverändert lassen.
Ich rufe die Skripte immer mit Pfadangabe auf, damit spare ich mit das ausführbar machen unter Linux.
Bei mir liegt die API auf einener SD-Karte, du kannst sie aber auch in den FHEM- Modpath, oder in dein User- Verzeichnis stecken. Hauptsache es ist für den User FHEM auseichend berechtigt.
Beispiel von mir:

system("/usr/bin/php /media/sd_intern/fhem/fritzbox_api/fritzbox_dect_on_off.php 1");;\

PHP muss natürlich auch aktuell sein, die erforderl. Version steht dort im Thread oder in der Readme- Datei der API.
Zum testen würde ich das RingPhone oder CallPhone- Skript nehmen, das ist am unkompliziertesten. Wenn das läuft, dann kannst du ans Eingemachte gehen. ;o)

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

ritchie

Hallo Fiedel,

ich habe eine "FRITZ!Box Fon WLAN 7570 vDSL" mit der Version Firmware-Version 75.04.91.
Laut Update Funktion ist dies die aktuelle Firmware für diese Box.

Derzeit bekomme ich dann diese Meldung:

pi@fhem ~/php $ php ./fritzbox_ring_phone.php
2013-07-13 14:29 ERROR: Login failed with an unknown response.


Ich kämpfe mich derzeit durch die Funktionen via

echo "....\n" ;


Um zu sehen, wo die Funktion ausgeführt wird und wo es hackt.

Edit 1:
Die Session ID ist ungültig !

Hier die Lösung ich musste diese Einstellung noch auf "false" setzen, da meine Fritzbox vor 2012 gebaut wurde und daher
nicht das neue Verfahren verwendet.

$this->config->setItem('use_lua_login_method', false);


Der geht jetzt auch:

php ./fritzbox_guestwlan_on_off.php 1



Danke für die Starthilfe !

Gruss R.
 
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

ritchie

Hallo Fiedel,

ich habe die Lösung. Eigentlich ganz einfach, aber ich habe mich die ganze Zeit an den Guest_WLAN Script gehalten.

Der angefügte Script erledigt das ein und ausschalten über die Funktion "dial".

Hierbei wird einfach entsprechend dem Parameter

 if( $mode == 1 )
{
$dial = '#96*1*'; // set to the number to dial
}
  else
{
$dial = '#96*0*'; // set to the number to dial
}


als Wahlparameter angegeben.

Da diese Funktion generell mit der API arbeitet, sollte diese Funktion auch bei den meisten
Fritzboxen korrekt arbeiten.

Manchmal sieht man den Wald vor lauter Bäume nicht.

Edit: Wäre es in Deinem Sinne, wenn ich über die Steuerung der Fritzbox via API eine kleine Wiki schreiben, damit nicht andere so lange suchen und fragen müssen.

Viele Grüße

R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

fiedel

Hi Ritchie,

wollte gerade monieren, dass das ja nur geht, wenn FHEM auf der FB läuft - aber dann hab ich in dein Script geguckt... ;o) Na das ist ja ne ganz ausgekochte Geschichte! Wenn man es sieht ist es klar, dass es so gehen kann, aber drauf kommen muss man erst mal. ;o) Schreib mal einen WIKI- Eintrag dazu, das macht Sinn!

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

ritchie

Hallo Fiedel,

so die erste Version der Wiki ist angelegt.
Siehe Fritzbox via URL (http) steuern hier.

Jetzt würde ich nur noch gerne ein Bild auf meine Fritz Fon bekommen,
wenn der Raspberry mein Fritz Fon anruft.

Aller "Störung Pumpe im Keller".

Gruss R.



IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

fiedel

Na sieht doch hervorragend aus! ;o)

Das mit dem Bild geht doch über die anrufende Nummer. Ich hab damit auch rumgespielt, weil ich auf dem Handy verschiedene Klingeltöne für verschiedene Meldungen haben wollte. Wenn ich mich richtig erinnere, war der einzige Weg dieser:

Man besorgt sich z.B. bei Sipgate mehrere kostenlose VOIP- Nummern und richtet diese in der Fritte ein. Jetzt richtet man für jeden "Meldefall" eine Kurzwahl ein und definiert jeweils eine andere VOIP- Nummer als abgehende Nummer. Wenn man das Script jetzt die Kurzwahl wählen lässt, kommt jede Meldung mit der entspr. Rufnummer an. Dieser ordnent man nun im Handy oder Fritz Fon ein Bild oder VIP- Klingelton zu. Uff! ;o)

Hab das aber nicht umgesetzt, weil ich bei O2-DSL bin und mein IAD "gehackt" hab. Jetzt läuft zwar die FB ganz ordentlich mit den gekaperten Zugangsdaten, aber man kann keine VOIP- Nummern von einem zweiten Anbieter mehr einrichten. Sonst geht das O2-VOIP nicht mehr.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Puschel74

Hallo,

auch wenns OT ist aber

Zitataber man kann keine VOIP- Nummern von einem zweiten Anbieter mehr einrichten. Sonst geht das O2-VOIP nicht mehr.

Das müsste mit einer FB als Client an deiner IAD_FB klappen.

Ich hab bei KabelBW auch ein KabelBW-Modem für unsere analoge Festnetz-Nummer (und Internet) und die VoIP-Nummern bei Sipgate hab ich an der 7390 hinter dem Modem eingerichtet.
Telefonie über Sipgate (und Festnetz) klappt einwandfrei.
Auch die Wahlregeln in der FB greifen (Internet-Rufnummer oder Festnetz-Rufnummer).

Grüße

P.S.: Zu Probezwecke habe ich auch eine zweite 7390 im LAN auf der ein Teil meiner Sipgate Rufnummern registriert sind - funkt tadellos.
Ich hab allerding auch einen "Flat-Account" bei Sipgate mit 3 Rufnummern und einer Faxnummer und gratis Telefonate in 29(?) europäische Festnetze (ich brauch aber nur Ö, CH und F ^^).
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

fiedel

Hi Puschel,

na klar, das geht und das ist auch die offizielle Lösung, wie sie O2 vorschlägt. Aber das IAD schluckt ca. 11 Watt zusätzlich zur Fritzbox. Da habe ich es mir dann doch anders überlegt... ;o)

Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423