Ankündigung

Einklappen
Keine Ankündigung bisher.

fritz!Box WLAN über Bus schalten

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

  • thoern
    antwortet
    Hallo,

    wer weder openHAB noch smarthome.py o.ä. im Einatz hat, kann sich meines Skriptes bedienen, welches ich vor einiger Zeit mal geschrieben habe:

    fritzwlan.pl

    PS: Nutze ich übrigens immer noch im Zusammenhang mit openHAB, obwohl es dort inzwischen ein natives Binding gibt.

    Gruß,
    thoern

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    bleibt nur die Frage warum es in eibPC noch Keiner geschafft hat....
    das Timing-Verhalten beim eibPC- tcp hat ja offenbar seine Tücken (siehe auch den Thread "sendtcp..."

    Einen Kommentar schreiben:


  • Sandman60
    antwortet
    Über Smarthome.py klappt das wunderbar, nutze ich nun schon seit knapp einem halben Jahr stabil.

    Einen Kommentar schreiben:


  • supermaz
    antwortet
    Sollte das OpenHAB nicht schon direkt können: https://github.com/openhab/openhab/w...tz-Box-Binding

    Ich werde es bei Gelegenheit einmal ausprobieren.

    Gruss,

    Matthias

    Einen Kommentar schreiben:


  • Minion
    antwortet
    Ist hier eigentlich schon mal jemand weitergekommen? Das ganze ist im Prinzip nicht auf PHP beschränkt. Derjenige hat sich halt nur für PHP entschieden, weil er es kann und ist dabei mehr oder weniger wie folgt vorgangen:

    Wie oben schon erwähnt, muss man im Webinterface beobachten, was bei der gewünschten Aktion passiert. Ältere Funktionen schicken ein POST-Request mit den Änderungen an ein zentrales Skript (etwa die Anrufbeantwortersteuerung). Neue Funktionen arbeiten mit einem speziellen LUA-Script (etwa die WLAN-Gastzugang). Man muss sich also mit dem Firebug oder ähnlichem auf die Lauer legen und schauen, was für POST-Request im Hintergrund ablaufen, während man die gewünschte Funktion im Webinterface benutzt. Das baut man dann mit einem entsprechenden Script nach. Die API hilft da nur so weit, dass sie die Sessionverwaltung übernimmt und vereinfachte Methoden für POST und GET anbietet. Den Rest schreibt man sich nach Wunsch in ein spezialisiertes Script bzw. passt eins der bestehenden entsprechend an. Nicht jeder braucht zum Beispiel ein Logging oder möchte den Erfolg der Aktion überprüfen.
    Also quasi mittels "reverse engineering" der Fritzbox Weboberfläche. Da darüber alle Funktionen der Fritzbox steuerbar sind, müssen nur die richtigen Requests abgesetzt werden. Ob die von der Fritzbox Weboberfläche kommen, oder von einem PHP-Script auf einem anderen Server oder aus einer webbasierten Visu, ist ansich völlig Schnuppe. Also, korrigiert mich, aber theoretisch müsste das gehen.

    Sind hier Programmierer im Forum? Das müsste doch theoretisch mit einer x-beliebigen Programmiersprache, die HTTP-Request senden kann, funktionieren.

    Ich hab vor Jahren mal mit .Net ein Programm geschrieben, welches einfach die Weboberfläche der Fritzbox geparst hat, dann im Login-Prompt in der entsprechenden Textbox das Passwort "eingegeben" hat, das POST des Login-Buttons ausgelöst, zur WLAN-Seite navigiert, die Checkbox für "WLAN aktiv" gesetzt hat (bzw. umgekehrt) und dann wieder den "übernehmen"-Button gedrückt hat. Quasi ne Automatisierung für die manuell durchzuführenden Schritte. Zugegeben unschön, aber tat was es sollte: Programm gestartet, zack WLAN an/aus ... dauerte nur wenige Sekunden Hat aber leider nur bei mir funktioniert und nicht bei der Fritzbox eines Kumpels und hab nie rausgefunden warum. Irgendwann hab ichs dann auch nicht mehr gebraucht, aber im Zusammenspiel mit KNX wird das Thema irgendwie wieder interessant.

    Einen Kommentar schreiben:


  • HolgerW
    antwortet
    Wenn man einen PHP fähigen Webserver laufen hat dann kann man es so machen wie hier beschrieben:
    Fritz!Box API für PHP (inkl. Login-Sessions)
    Bei mir ist es ein Synology NAS auf dem schon openHAB die Steuerung übernimmt.

    Holger

    Einen Kommentar schreiben:


  • Kahler
    antwortet
    Ich habe mich mal an den Suppport von AVM gewandt. Dort konnte die Frage, mit welchem Netzwerkbefehl das WLAN geschaltet werden kann, auch nicht spontan beantwortet werden. 2 Tage später erhielt ich dann die Antwort:

    "...vielen Dank für Ihre Geduld.
    Die von Ihnen gewünschte Funktion wird derzeit leider nicht unterstützt.

    Gerne habe ich Ihre Anfrage daher als Verbesserungsvorschlag an den zuständigen Produktmanager in unserem Haus weitergeleitet."


    Ich kann das nicht glauben, dass so ein vergleichsweise sinnvolles Feature von der Fritz!Box nicht unterstützt wird.


    Am Ende werde ich doch noch macgyver's gute Idee abe unsmarte Variante umsetzen müssen.

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    gibt es, aber solange das mit dem Klingeln nicht funktioniert

    /etc/init.d/rc.net wlanstop
    bzw.
    /etc/init.d/rc.net wlanstart

    ähhh eigentlich gehört das Ganze in den eibPC-Bereich

    Einen Kommentar schreiben:


  • Kahler
    antwortet
    Zitat von macgyver Beitrag anzeigen
    Ich hätte ne einfachere Lösung:

    Zweiten Wlan AP kaufen und darüber das WLAN laufen lassen ....
    so kann dieses Gerät mittels einer beliebigen schaltbaren Stedo....

    Wlan am Router selber dann abschalten....
    Auch eine Idee - aber ehrlich gesagt, gefällt mir der Ansatz von EPIX besser. Es muss doch ein TCP Kommando für die FB zum schalten des WLAN geben?

    Einen Kommentar schreiben:


  • Gast
    Ein Gast antwortete
    Ich hätte ne einfachere Lösung:

    Zweiten Wlan AP kaufen und darüber das WLAN laufen lassen ....
    so kann dieses Gerät mittels einer beliebigen schaltbaren Stedo....

    Wlan am Router selber dann abschalten....

    Einen Kommentar schreiben:


  • EPIX
    antwortet
    ich "murkse" auch an diesem Thema herum - leider mit mäßigem Erfolg

    Meine Versuche gehen über telnet - manchmal kann ich mich einloggen, aber leider nicht reproduzierbar.

    Mein Murks-Code (bitte nicht prügeln)

    Code:
    //-------------------------------------------------------------------------------------------
    // Fritzbox Telnet Kommando senden
    //  las Test: echo "ATDT**9" | nc 127.0.0.1 1011 löst Klingeln aus.... (via telnet)
    // mit FB connecten
    // Steuervariable für Telnet - Aktionen INIT
    FB_telnet_state=0u08
    FB_telnet_trigger= AUS
    FB_telnet_ConnectionState=6u08
    FP_IP=192.168.1.202
    FB_telnet_Port=23u16
    FB_telnet_GET_0=$hoerb01#$
    FB_telnet_GET_1=$echo "ATDT**9" | nc 127.0.0.1 1011$
    FB_telnet_count=0
    FB_telnet_Result_Data=$$c1400
    FB_telnet_Res_Port=0u16
    FB_telnet_Res_IP=0u32
    FB_telnet_Result0=$$c1400
    FB_telnet_Result1=$$c1400
    FB_telnet_Result2=$$c1400
    FB_telnet_Result3=$$c1400
    FB_telnet_Result1_len=0u16
    
    if FB_telnet_trigger then FB_telnet_state=1;FB_telnet_count=FB_telnet_count+1 endif
    
    // wenn über FB_telnet_trigger = EIN ausgelöst, dann
    if FB_telnet_state==1 then \\
    	FB_telnet_ConnectionState=connecttcp(FB_telnet_Port, FP_IP); \\
    	FB_telnet_trigger=AUS; \\
    	endif
    
    	if event(readtcp(FB_telnet_Res_Port,FB_telnet_Res_IP,FB_telnet_Result0)) then \\
    		write('10/0/99'c14,convert(FB_telnet_Result0,$$c14));\\
    		FB_telnet_Result1_len=size(FB_telnet_Result0) endif
    
    	if after(change(FB_telnet_ConnectionState),1000u64) then \\
    		sendtcp(FB_telnet_Port, FP_IP,$hoerb01#$,13); \\
    		FB_telnet_state=2; \\
    		 endif
    
    // TCP Nachricht senden (login)
    //    if after(change(FB_telnet_state) ,2000u64) \\
    //	and FB_telnet_state == 2u08 then \\
    //	sendtcp(FB_telnet_Port, FP_IP,$hoerb01#$,13,10); \\
    //	endif
    
    	if event(readtcp(FB_telnet_Res_Port,FB_telnet_Res_IP,FB_telnet_Result1)) \\
    		and FB_telnet_Res_IP == FP_IP and FB_telnet_Res_Port == FB_telnet_Port and \\
    		FB_telnet_state==2 then \\
    		FB_telnet_state=3; \\
    		endif
    
    // Telnet Kommando senden
       if after(change(FB_telnet_state) ,1000u64) \\
    	and FB_telnet_state == 3u08 then \\
    	sendtcp(FB_telnet_Port, FP_IP, FB_telnet_GET_1,13); \\
    	FB_telnet_state=4; \\
    	endif
    
    	if event(readtcp(FB_telnet_Res_Port,FB_telnet_Res_IP,FB_telnet_Result3)) \\
    		and FB_telnet_Res_IP == FP_IP and FB_telnet_Res_Port == FB_telnet_Port and \\
    		FB_telnet_state == 4u08 then \\
    		FB_telnet_state=5; \\
    		endif
    
    // Verbindung schließen
       if (after(change(FB_telnet_state) ,1000u64) \\
    	and FB_telnet_state == 5u08) then \\
            closetcp(FB_telnet_Port,FP_IP); \\
            FB_telnet_trigger = AUS; \\
            FB_telnet_ConnectionState = 6u08; \\
    	FB_telnet_state=6; \\
        	endif
    
       if (after(change(FB_telnet_state) ,5000u64) \\
    	and FB_telnet_state >= 1u08) then \\
            closetcp(FB_telnet_Port,FP_IP); \\
            FB_telnet_trigger = AUS; \\
            FB_telnet_ConnectionState = 6u08; \\
    	FB_telnet_state=7; \\
        	endif

    Einen Kommentar schreiben:


  • Kahler
    hat ein Thema erstellt fritz!Box WLAN über Bus schalten.

    fritz!Box WLAN über Bus schalten

    Hallo Gemeinde,

    ich suche nach einer Möglichkeit das WLAN meiner Fritzbox 7390 anwesenheitsabhängig mittels EibPC zu schalten.
    So soll das WLAN nach Betätigung der "Gute Nacht" Taste bis zur ersten Bewegung im Haus am nächsten Morgen oder solange sich das Haus im Abwesenheitsmodus befindet ausgeschaltet werden. Die Logik mittels EibPC ist soweit trvial, was fehlt sind die Befehle, mit der ich die Fritzbox entsprechend steuern kann.

    Meine Suchen hier im Forum und im WWW haben leider noch keine brauchbaren Ergebnisse gebracht. Andererseits kann ich mir nicht vorstellen, dass das nicht möglich ist.

    Ich bitte um sachdienliche Hinweise oder Links.

    Besten Dank vorab
    Uwe
Lädt...
X