FritzBox 6.3 per CUxD steuern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 09.01.2016, 15:39

Ich hab im 1. beitrag nochmal ein update bereitgestellt:

network_user_devices und FBAHA_DEVICE_state sollte jetzt ccu1 kompatibel sein;
generell wird dem curl ein timeout mitgeschickt - dies ist in der fb.common zu finden
-> cURL_timout="-m 5" hier auf 5 sekunden, wenn innerhalb der " nichts steht, wird kein timeout mitgeschickt.
ein paar bugs gefixt, hoffentlich keine neuen generiert :mrgreen:

michnix
Beiträge: 8
Registriert: 09.01.2016, 18:37

Re: FritzBox 6.3 per CUxD steuern

Beitrag von michnix » 09.01.2016, 18:48

Hallo zusammen!

Erstmal vielen Dank für die tolle Arbeit!

Leider hat wohl keiner mein Problem: wenn meine Tochter schläft, soll das Telefon nicht klingeln. Bisher war das über Rufsperre oder -umleitung gelöst. Seit der neuen Firmware macht das die Hand am Arm :-(

Ich habe auch nochmal die Doku zu TR064 gewälzt, aber nix gefunden was den alten Weg unterstützt. Also habe ich neu überlegt und folgendes probiert: Neben meinem normalen Anrufbeantworter nach 20s habe ich einen weiteren angelegt, der sofort annimmt. Schalte ich den ein, habe ich den gleichen Effekt: das Telefon bleibt stumm.

Anrufbeantworter kann man auch über TR064 ein- und ausschalten. Das versuche ich gerade in das Skript einzubauen. Den Status eines beliebiegen AB kann ich bereits abfragen. Morgen mache ich mich mal ans Status setzen.

Falls es das schon gibt und ich es nur übersehen habe wäre ich für einen Hinweis dankbar.

Grüße,
Martin

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 09.01.2016, 18:57

Nein, gibt es leider noch nicht!
Wenn du das ganze mit einem Curl-befehl hinbekommst, wäre das super!

das ganze in das script packen, usw. mach ich gerne - ich bin leider immer noch nicht weiter gekommen; seitdem die Frau wieder arbeiten "darf", hat leider der PC kaum Priorität :(

michnix
Beiträge: 8
Registriert: 09.01.2016, 18:37

Re: FritzBox 6.3 per CUxD steuern

Beitrag von michnix » 09.01.2016, 20:51

ok, dann zumindest schonmal der aktuelle Stand. Wie gesagt funktioniert das Abfragen des AB-Status über ./FB-main Status-AB <Index-des-AB>
Was noch nicht geht, ist das Setzen der CUXD-Variablen, wie das z.B. bei WLAN gemacht wird (weil ich es noch nicht verstanden habe).

Ich habe die Statusabfrage in der FB-main.sh eingebaut:

Code: Alles auswählen

	"Status-AB")  	# sh FB-main.sh Status-AB index 
					location="/upnp/control/x_tam"
					uri="urn:dslforum-org:service:X_AVM-DE_TAM:1"
					Action='GetInfo'
					SoapParam='NewIndex'
					get_TR064 $2
					SoapParam='NewEnable'
					TR064=$(echo $TR064_temp | sed -n 's:.*<'$SoapParam'>\(.*\)</'$SoapParam'>.*:\1:p')
					Debugmsg2=$Debugmsg2"get_TR064     : $1/$2/$SoapParam = $TR064 \n"
					;;
Nicht schön, dass ich den SoapParam einmal für die Eingabe, einmal für die Ausgabe setzen muss, aber tuts.

Zusätzlich mußte ich in der FB.common get_TR064() um einen Eingabeparameter erweitern (eben den Index des ABs):

Code: Alles auswählen

get_TR064(){
SoapURL="http://$IP:49000$location"
XML_get="<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:$Action xmlns:u='$uri'> <$SoapParam>$1</$SoapParam> </u:$Action> </s:Body> </s:Envelope>"
Debugmsg2=$Debugmsg2"\nAufruf XML_get:\n$XML_get\n\n"
TR064_temp=$($cURL -k --anyauth -u "$user:$pwd" $SoapURL -H "$CT" -H "SoapAction:$uri#$Action" -d "$XML_get" -s )
Debugmsg2=$Debugmsg2"\nParameter TR064_temp:\n$TR064_temp\n\n"	
}
Nebenbei habe ich dort die Debugausgabe erweitert, damit ich die zusammengebaute Anfrage-XML sehen kann.

Zum Aktivieren und Deaktivieren des ABs muss ich bei set_TR064 diesmal zwei SoapParams mitgeben: zum einen den Index (NewIndex) des AB, zum anderen den gewünschten Zustand (NewEnable) 0 oder 1. Das hab ich noch nicht schick in die set_TR064 reinbekommen.

Code: Alles auswählen

	"AB")		  	# sh FB-main.sh AB index state
					location="/upnp/control/x_tam"
					uri="urn:dslforum-org:service:X_AVM-DE_TAM:1"
					SoapParam='NewIndex'
					SoapParam2='NewEnable'
					if [ $3 = "0" ] || [ $3 = "1" ]; then
						Action='SetEnable'			
					    set_TR064 $2 $3      # leider verarbeitet set_TR064 den SoapParam2 noch nicht.
					fi
					;;
Dauert bei mir alles ein wenig, weil ich bei Shell-Skipten jeden Mist googlen muss... Vielleicht reicht dir das ja schon zum Einbauen?

Grüße,
Martin

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 09.01.2016, 23:21

Hey super!
Wenn ich nicht bei der Arbeit wäre :?
<Index-des-AB>
das wäre dann die Nummer des AB´s, richtig?
set_TR064 und get_TR064 müssen also um einen Parameter erweitert werden, richtig?
Wenn du die set/get_TR064 änderst, sollten ja die bisherigen Befehle nicht mehr arbeiten - oder gehen die noch?

Ich denke spätestens übermorgen (Kinder haben Schule - hurra) kann ich mich da ranmachen...
Da hätte ich mir vorgestellt, die FB.common fürs erste noch garnicht zu ändern, sondern deine Änderungen als set_TR064_2 und get_TR064_2 erstmal so zu lassen und alles in einem Script zu lassen, dann gehts leichter zum Testen mit anderen ...

Danke für die tolle Vorarbeit!

t_heinrich
Beiträge: 542
Registriert: 24.07.2011, 16:38

Re: FritzBox 6.3 per CUxD steuern

Beitrag von t_heinrich » 09.01.2016, 23:25

Dragonfly hat geschrieben: DECT, Klingelsperre, Klingelton, Name des Mobilgerätes usw. hab ich noch nichts gefunden - wenn hier jemand was rausfindet, bitte dringend melden!
Auf jeden Fall sehr cool, dass du danach schaust.
Daumen hoch!!!

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 09.01.2016, 23:35

@Uwe:
Gibt es eigentlich einen .INHIBIT für die (28)exec-Remotes die wir hier zum ein/ausmachen und holen der stati verwenden?

weil:
Wenn wir wirklich mal wieder DECT der Fritz deaktivieren können, wäre es ja sinnlos die Status-Abfragen der Dect-Schalter über den Timer in der (28)exec weiter laufen zu lassen.

so nach dem motto:
wenn DECT aus , dann die Schalter auf .INHIBIT setzten

LG

Benutzeravatar
uwe111
Beiträge: 4827
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von uwe111 » 10.01.2016, 15:45

Hallo Tom,
Dragonfly hat geschrieben:Gibt es eigentlich einen .INHIBIT für die (28)exec-Remotes die wir hier zum ein/ausmachen und holen der stati verwenden?
Für (28) System.Exec gibt's das nicht, aber .INHIBT gibt's für die CMD_EXEC Aufrufe des (28) System.Timers.
Dragonfly hat geschrieben:Wenn wir wirklich mal wieder DECT der Fritz deaktivieren können, wäre es ja sinnlos die Status-Abfragen der Dect-Schalter über den Timer in der (28)exec weiter laufen zu lassen.
Du könntest einen ganzen (28) System.Timer für DECT-Abfragen nutzen und bei Bedarf über .INHIBIT komplett deaktivieren. Sowas funktioniert.

Vielleicht macht es aber beim CMD_TIMER für die (28) System.Exec Kanäle auch Sinn? Dann müsste ich das noch implementieren.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Benutzeravatar
Murmelbaerchen69
Beiträge: 274
Registriert: 01.12.2013, 22:55
Wohnort: @home

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Murmelbaerchen69 » 10.01.2016, 16:25

Hallo Dragonfly

danke dir das funktioniert. Eine Frage hätte ich noch.
Mit der FritzBox.sh konnte man so auf eine andere FritzBox zugreifen:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:7.CMD_EXEC").State("sh /usr/local/addons/cuxd/user/FritzBox.sh x [IP-der-Fritzbox] [FitzBox-Benutzername] [Passwort] LANAnwesend [Name_des_Geraetes] [Name_der_SysVar]");
funktioniert das auch mit der FB-main.sh ?

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:7.CMD_EXEC").State("sh /usr/local/addons/cuxd/user/FB-Main.sh x [IP-der-Fritzbox] [FitzBox-Benutzername] [Passwort] online [Name_des_Geraetes] [Name_der_SysVar]");
Gruß Ralf
Das soll ein neuer Computer sein ? Warum steht den auf der Tastatur "ALT" ?

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 10.01.2016, 16:31

ja, das geht:

sh FB-main.sh {x [IP] [user] [pwd]} ...
oder
sh FB-main.sh {y [IP]} ... -> user und pwd wird aus der config genommen

Antworten

Zurück zu „CUxD“