FritzBox Rufumleitung

pkg upgrade und pkg install das wars. Ich dachte ich muß die Pakete alle runterladen, entpacken und installieren.
Grandios. Funzt perfekt.
Da werd ich mir doch mal noch die anderen SS der TR-064 anschauen was da noch so möglich ist.

Herzlichen Dank
 
pip search fritz zeigt auch noch andere FritzBox Pakete (ich hab mir sonst keines angeschaut), welche ggf. auch noch anderes zeug einfach ermöglichen. Mit nach dem Paketnamen googlen sollte sich normal auch eine Dokumentation dazu finden lassen.

schön das es geklappt hat
 
  • Danke
Reaktionen: schmetty2
Hallo vetzki,

gibt es eine Möglichkeit den Gast Wlan zu schalten? In der fitzwlan.py seh ich da keine direkte Option. Das müsste wahrscheinlich über NewEnable gelöst werden. Hast Du eine Idee?

mfg
 
Ja,
etwas komplizierter aber nicht viel.

du kannst an sich jeden Service und jede Action davon nutzen (zumindest sollte es funktionieren)

einfaches bsp:
in Termux:
- zuest mit
Code:
fritzconnection -p PASSWORT -c > /sdcard/fritzconnection.txt
alle verfügbaren servicenamen sowie actions in einer datei speichern (ist recht groß und ggf. länger als der terminal puffer)

dann solltest du verschiedene
Servicename: WLANConfiguration:hierEineZahl
bekommen
(z.b. bei mir:
Code:
Servicename:        WLANConfiguration:1
Servicename:       WLANConfiguration:2
)

WLANConfiguration:2 ist bei mir der Gastzugang

dann in termux
python
eingeben und eine python shell öffnen
(solle in etwa so aussehen
Python 3.6.3 (default, Oct 24 2017, 14:48:20)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
)

dann eingeben
Code:
import fritzconnection as fc

con = fc.FritzConnection(password="HierDeinPassWort")
con.call_action("WLANConfiguration:2","SetEnable",NewEnable=1) # wenn gastconf ist 2 sonst anpassen, kann mit con.call_action("WLANConfiguration:HierDieNummer","GetSSID") geprüft werden
#NewEnable=1 schaltet an (bool true) NewEnable=0 schalte ab (false)

wie oben erwähnt den ssid namen kannst du mit con.call_action("WLANConfiguration:HierDieNummer","GetSSID") anzeigen lassen (oder du nimmst GetInfo für alles)

du kannst z.b. noch ein
con.call_action("WLANConfiguration:2","GetInfo")["NewEnable"]
einbauen um danach den neuen An/Aus Status zu erhalten

das ganze kannst du auch in einer eigenen Datei (allerdings nicht auf /sdcard, ginge zwar aber dann müsstest du es mit python /Ptad/zum/Skript/Skript starten)
speichern, so in etwa:
Code:
#!/data/data/com.termux/files/usr/bin/python

import fritzconnection as fc
import argparse,sys

class FritzGuest:
    def __init__(self,pw,wci):
        self.con = fc.FritzConnection(password=pw)
        self.wci = wci


    def get_connection_info(self):
        try:
            infos = self.con.call_action("WLANConfiguration:"+self.wci,"GetInfo")
            for k,v in infos.items():
                print("%s %s" %(k,v))
            res = 0
        except Exception as e:
            print(str(e))
            res = 1
        finally:
            sys.exit(res)


    def set_connection(self,ne):
        try:
            self.con.call_action("WLANConfiguration:"+self.wci,"SetEnable",NewEnable=ne)
            newstate=self.con.call_action("WLANConfiguration:"+self.wci,"GetInfo")["NewEnable"]
            print("Aktiv: %s" %("Ja" if newstate == "1" else "Nein") )
            res = 0
        except Exception as e:
            print(str(e))
            res = 1
        finally:
            sys.exit(res)

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-p","--password",help="Password",required=True,type=str)
    parser.add_argument("-i","--id", help="WLANConfiguration Id",required=True,type=str)
    parser.add_argument("-n","--new-enable", help="Set new_enable",type=int,choices=[0,1])
    parser.add_argument("-g", "--get-info",help="Get info of WLANConfiguration",nargs='?',const=True)
 
    args = parser.parse_args()
 
    fg = FritzGuest(args.password,args.id)
 
    if args.get_info is True:
        fg.get_connection_info()
    elif args.get_info is None and args.new_enable is None:
        # nothing specified, show info
        fg.get_connection_info()
    else:
        if args.new_enable is None:
            print("NewEnable missing")
            sys.exit(2)
        else:
            fg.set_connection(args.new_enable)

wenn das ganze z.b. als /data/data/com.termux/files/usr/bin/fritzguest speicherst
und danach die rechte mit chmod 755 /data/data/com.termux/files/usr/bin/fritzguest setzt solltest du es mit fritzguest ausführen können
(aber du kannst es auch einfach im termux home ordner speichern und dann den kompletten pfad angeben, python /sdcard/skriptname sollte auch gehen falls du es auf der sd karte lassen möchtest)

verwendung z.b.:
fritzguest -p Passwort -i 2 -n 1
setzt WLANConfiguration:2 auf Aktiv
fritzguest -p Passwort -i 2 -n 0
setzt WLANConfiguration:2 auf Inaktiv
fritzguest -p Passwort -i 2 -g
zeigt die info zu dem wlan

fritzguest -h zeigt ein kleine hilfe (mit schlechten beschreibungen :ohmy:)
(! Achtung nicht das du dir das normale auf Disable setzst [falls das geht] !)
 

Anhänge

  • Screenshot_20171122-140019.png
    Screenshot_20171122-140019.png
    19,3 KB · Aufrufe: 166
Zuletzt bearbeitet:
  • Danke
Reaktionen: schmetty2
So,
bei mir ist es Index 3, hat ich gestern schon ermittelt. Bei Eingabe über Termux wird umgeschalten, sogar ohne FB Passwort.
Beim Ausführen der fritzguest in /data/data/com.termux/files/usr/bin kommt der Fehler: sush:<stdin>[2]: /data/data/com.termux/files/usr/bin/ fritzguest: No suchfile or directory.
Oder muß diese Datei mit einem anderen Befehl als fritzcallforwarding aufgerufen werden?

mfg
 
Zuletzt bearbeitet:
Hast du die datei denn ins Verzeichnis /data/data/com.termux/files/usr/bin/ kopiert und die rechte gesetzt?

Du kannst sie aber auch z.b. ins home verzeichnis kopieren und mit dem vollständigen pfad ausführen oder auf der sd karte lassen und mit python /sdcard/fritzguest ausführen
 

Anhänge

  • Screenshot_20171122-201005.png
    Screenshot_20171122-201005.png
    37,6 KB · Aufrufe: 177
  • Danke
Reaktionen: schmetty2
Jetzt gehts,
ich habe eine vorhandene fritzconnection Datei genommen und da hinein kopiert. Damit gehts, Hatte vorher mit Notepad++ eine txt erstellt und das txt weggenommen. Das war wohl der Fehler.
Aber nun geht alles auch ohne FB PW, da brauch ich an den Befehlen für die Dect200 wenigsten nicht ändern.

Danke Schön
 
So,

die DECT200 wird jetzt auch per Python gesteuert.:biggrin:

mfg
 

Ähnliche Themen

B
Antworten
6
Aufrufe
439
rtwl
rtwl
M
Antworten
36
Aufrufe
1.954
mw.dd
M
M
Antworten
4
Aufrufe
928
MaGu64
M
Zurück
Oben Unten