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:

FritzBox 6.3 per CUxD steuern

Beitrag von Dragonfly » 29.11.2015, 16:54

Seit Schließung der WEBCM-Schnittstelle funktioniert Leinichs "FritzBox-Script" leider nicht mehr vollständig.
Das heißt, momentan geht dort ab FritzOS 6.3 nur mehr die von mir implimentierte AHA-Schnittstelle - wie lange noch kann ich nicht sagen.

Die neue Schnittstelle die wir verwenden können ist die TR-064, welche nicht alle Funktionen des bisherigen Scripts unterstützt.
Sie sollte ab FritzOS 6.0 funktionieren, Teile davon schon mit älterer FW.
Die Schnittstelle gibt es seit ca. 2009 und wurde das letzte mal 2013 aktuallisiert - soweit ich das herausgelesen habe.
Ob AVM diese auch dicht macht, oder weiter pflegen wird, kann ich nicht sagen.

Das Script besteht aus mehreren Teilen, da der Vorgänger wegen seiner vielen Funktionen bei der Wartung doch recht unübersichtlich geworden ist:

FB-main.sh -> alles was ein/aus gemacht werden kann, diverse Stati
FB-AHA.sh -> SmartHome-Steuerung von AVM
FB-fon.sh -> die Telefon-Sachen

FB.cfg -> IP, User, Passwort
FB.common -> geimsame Scriptteile der *.sh Dateien


Warnung!

Unsachgemäße......
Vor der Verwendung ein Backup der Box anlegen!
Während es z.B. möglich war, mit dem alten Script GästeWlan, auf einer 2. Box hinter dem Hauptrouter einzuschalten und zu verwenden, geht dies mit dieser Schnittstelle nicht mehr! Es wird das komplette Wlan deaktiviert und läßt sich nur noch über einen Restore der Config wieder aktivieren.
Also vorsichtshalber nur Befehle verwenden, die auch in der Fritz "sichtbar" sind!


Konfiguration

In der Regel muß man nur die FB.cfg mit eigenen Daten füttern. Als Platzhalter habe ich als User "CCU" und als Passwort "HomeMatic" verwendet.
Sollte nun jemand mehr als nur eine FritzBox damit steuern wollen, gibt es zwei weitere Möglichkeiten dies von außerhalb der FB.cfg zu machen:

sh FB-main.sh Befehl Wert -> Aufruf mit der config-Datei
sh FB-AHA.sh x IP user pwd Befehl Wert -> Aufruf mit IP, User, Passwort
sh FB-fon.sh y IP Befehl Wert -> Aufruf mit IP, User und Passwort werden aus der config-Datei geholt

Das Script nach "/usr/local/addons/cuxd/user/" hochladen, Dateirechte 755 nicht vergessen !

In der FritzBox ist unter "Heimnetz / Heimnetzübersicht / Zugriff für Anwendungen zulassen" zu aktivieren.
Das Script ist für die Benützung mit User und Passwort ausgelegt - diesen kann man in "System / FritzBox-Benutzer" anlegen.


Debug
Jede *.sh wird mit dem Debug-Modus "1" ausgeliefert.
Benutzer und Passwort werden erst im Debug-Modus "2" als Klartext dargestellt, dort sind auch noch mehr Infos ersichtlich.
Läuft alles wie gewünscht, den Debug-Modus auf "0" stellen.


Funktionen

FB-AHA.sh

Code: Alles auswählen

./FB-AHA.sh switch [AIN|MAC] [0|1] -> aus/ein 
./FB-AHA.sh switch [AIN|MAC] [state] [CUX2801xxx:x] -> Status an CUxD-Remote (28)
./FB-AHA.sh switch [AIN|MAC] [state] [CUX9001xxx:x] -> ein/aus an CUxD (90)State-Monitor Device
./FB-AHA.sh switch [AIN|MAC] [state1] [CUX2801xxx:x] -> Status an CUxD-Remote (28) und SysVar [CUX2801xxx:x-Status] -> Werteliste: nicht erreichbar;erreichbar;unbekannt
./FB-AHA.sh switch [AIN|MAC] [state1-p] [CUX2801xxx:x] -> Status an CUxD-Remote (28) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung]
./FB-AHA.sh switch [AIN|MAC] [state1-t] [CUX2801xxx:x] -> Status an CUxD-Remote (28) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Temperatur]
./FB-AHA.sh switch [AIN|MAC] [state1-pt] [CUX2801xxx:x] -> Status an CUxD-Remote (28) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur]
./FB-AHA.sh switch [AIN|MAC] [state1-pts] [CUX2801xxx:x] -> Status an CUxD-Remote (28) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur] [CUX2801xxx:x-Schaltzustand]
./FB-AHA.sh switch [AIN|MAC] [power] [CUX2801xxx:x] -> SysVar [CUX2801xxx:x-Leistung] -> Zahl
./FB-AHA.sh switch [AIN|MAC] [power1] [CUX9000xxx:x] -> CUxD (90)Transform Device 
./FB-AHA.sh switch [AIN|MAC] [temperature] [CUX2801xxx:x] -> SysVar [CUX2801xxx:x-Temperatur] -> Zahl
./FB-AHA.sh switch [AIN|MAC] [temperature1] [CUX9000xxx:x] -> CUxD (90)Transform Device 
./FB-AHA.sh switch [AIN|MAC] [temperature2] [CUX9002xxx:x] -> CUxD (90)Thermostat Device  
FB-main.sh

Code: Alles auswählen

./FB-main.sh WLAN [0|1]
./FB-main.sh WLAN [state] [CUX2801xxx:x] -> Status an CUxD-Remote (28)
./FB-main.sh WLAN [state1] [Name_der_SysVar] -> SysVar/Logikwert (true/false)
./FB-main.sh WLAN5G [0|1]
./FB-main.sh WLAN5G [state] [CUX2801xxx:x] -> Status an CUxD-Remote (28)
./FB-main.sh WLAN5G [state1] [Name_der_SysVar] -> SysVar/Logikwert (true/false)
./FB-main.sh WLANGast [0|1]
./FB-main.sh WLANGast [state] [CUX2801xxx:x] -> Status an CUxD-Remote (28)
./FB-main.sh WLANGast [state1] [Name_der_SysVar] -> SysVar/Logikwert (true/false)
./FB-main.sh reconnect -> neu mit dem Internet verbinden
./FB-main.sh reboot -> Fritzbox neu starten
./FB-main.sh Status-Verbindungszeit [Name_der_SysVar] [sec|min|hour|day] -> SysVar/Zahl
./FB-main.sh Status-IP [Name_der_SysVar] -> SysVar/Zeichenkette
./FB-main.sh Status-Verbindung [Name_der_SysVar] -> SysVar/Logikwert (true/false)
./FB-main.sh Status-Uptime [Name_der_SysVar] [sec|min|hour|day] -> SysVar/Zahl
./FB-main.sh presence [Name_des_Geraetes] [Name_der_SysVar] -> SysVar/Logikwert (true/false)
./FB-main.sh online [Name_des_Geraetes] [Name_der_SysVar] -> SysVar/Logikwert (true/false)

FB-fon.sh

Code: Alles auswählen

./FB-fon.sh Anrufliste
./FB-fon.sh call [number] [time]
./FB-fon.sh AB [Nummer_des_AB] [0|1]
./FB-fon.sh AB [Nummer_des_AB] [state] [CUX2801xxx:x] -> Status an CUxD-Remote (28)			
./FB-fon.sh AB [Nummer_des_AB] [state1] [Name_der_SysVar] -> SysVar/Logikwert (true/false)

Folgendes zur Wlan-Schaltung:
Von der Fritz gibt es Wlan-Geräte mit 2,4Ghz und welche mit 2,4Ghz und 5Ghz.
Besitzt man ein Gerät mit 2,4Ghz ist der Befehl für das Gast-Wlan WLAN5G
Hat man ein Gerät mit Dual-Wlan, ist der Befehl für das 5Ghz Wlan WLAN5G, der für das Gast-Wlan WLANGast


CUxD Integration
Die Integration ist gleich wie beim ursprünglichen FritzBox-Script - mit ein paar kleinen Namens-Anpassungen natürlich.
Diese ist auf Wikimatic http://www.wikimatic.de/wiki/ShellScrip ... ntegration beschrieben.


Update 11.12.16: FB-AHA auf v0.1.6 - Beta-FW konnte Temperatur und Leisung nicht mehr auslesen; gefixt
Dateianhänge
FB.zip
FB.cfg v0.1.1
FB.common v0.1.6
FB-main.sh v0.1.4
FB-AHA.sh v0.1.6
FB-fon.sh v0.1.0
(10.1 KiB) 10150-mal heruntergeladen
Zuletzt geändert von Dragonfly am 11.12.2016, 12:41, insgesamt 9-mal geändert.

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 » 02.12.2015, 10:59

Das Script ist jetzt online....

dzeh75
Beiträge: 15
Registriert: 03.09.2013, 13:14

Re: FritzBox 6.3 per CUxD steuern

Beitrag von dzeh75 » 02.12.2015, 14:58

Hallo Dragonfly,

vielen herzlichen Dank, dass Du Dich diesem Thema annimmst. :-)

Leider funktioniert bei mir das Einschalten des Gäste-WLANs meiner FritzBox 7490 (mit Dual-WLAN) nicht. Die Dateien sind nach "/usr/local/addons/cuxd/user/" hochladen, die Rechte auf 755 gesetzt und die Steuerung mittels virtuellen Taster (CUX2801002:1 -> KEY|CMD_LONG -> sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1) eingerichtet.
Außerdem habe ich auf der FritzBox einen User samt Passwort eingerichtet und diese Zugangsdaten zusammen mit der IP-Adresse der FritzBox in die FB.cfg eingetragen. Ebenso ist unter Heimnetz -> Netzwerkeinstellungen -> Zugriff für Anwendungen zulassen aktiviert.

Nach dem Drücken den Tasters passiert jedoch nichts (Exitcode 127).

Dec 2 14:03:34 (none) syslog.info -- MARK --
Dec 2 14:10:58 (none) daemon.warn cuxd[1058]: CUX2801001:1 [0] - pid(28149) already running -> new pid!
Dec 2 14:11:46 (none) daemon.info cuxd[28200]: system(sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1) exit(127) 1s
Dec 2 14:12:26 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 97 0x61 [1] 0 0x00 [2] 99 0x63 [3] 0 0x00 [4] 100 0x64 [../Platform/DOM/iseESPexec.cpp (11622)]
Dec 2 14:13:24 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 9 0x09 [3] 0 0x00 [4] 28 0x1c [../Platform/DOM/iseESPexec.cpp (11622)]
Dec 2 14:13:24 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 9 0x09 [3] 0 0x00 [4] 28 0x1c [../Platform/DOM/iseESPexec.cpp (11622)]
Dec 2 14:15:01 (none) cron.notice crond[983]: USER root pid 28368 cmd /bin/arm7setclock
Dec 2 14:15:27 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 9 0x09 [3] 0 0x00 [4] 28 0x1c [../Platform/DOM/iseESPexec.cpp (11622)]
Dec 2 14:15:27 (none) local0.err ReGaHss: Error: IseESP::ExecError= Execution failed: [-1] 0 0x00 [0] 144 0x90 [1] 0 0x00 [2] 9 0x09 [3] 0 0x00 [4] 28 0x1c [../Platform/DOM/iseESPexec.cpp (11622)]
Dec 2 14:16:29 (none) daemon.info cuxd[28438]: system(sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1) exit(127) 0s
Dec 2 14:17:26 (none) daemon.info cuxd[28488]: system(sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1) exit(127) 0s
Dec 2 14:20:02 (none) daemon.info cuxd[28613]: system(sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1) exit(127) 0s
Dec 2 14:23:34 (none) syslog.info -- MARK --

Hast Du eine Idee, wo der Fehler liegen könnte? Das alte Skript lief bis zum Update auf 6.30 ohne Fehler. So langsam bin ich mit meinem Latein am Ende.
Auf die Schaltung des Gäste-WLANs könnte ich notfalls verzichten. Wichtiger wäre jedoch das Starten eines Anrufs (für Alarmierung und Türklingel-Weiterleitung aufs Handy).

Viele Grüße
Dirk

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 » 02.12.2015, 15:18

diese ausgabe nützt mir leider nicht sehr viel - du mußt das script zum testen via putty o.ähnlichem Aufrufen.

sowas kommt dann bei mir raus:

Code: Alles auswählen

# sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetEnableResponse xmlns:u="urn:dslforum-org:service:WLANConfiguration:3"></u:SetEnableResponse>
</s:Body>
</s:Envelope>EndFritzBoxSkript()
                EXITCODE: 0
                MESSAGE : Erfolgreich

Script-Version          : /usr/local/addons/cuxd/user/FB-main.sh v0.1.2
verwendbar mit          : FB.common v0.1.3 / FB.cfg v0.1.1

Messages captured:
FritzBox Version        = FRITZ!Box 7490 BETA Labor 113.06.36-31909
Parameter FritzBox      = fritz.box
Parameter Username      = gesetzt
Parameter Passwd        = gesetzt
Parameter HOMEMATIC     = 127.0.0.1
Parameter ADDONDIR      = /usr/local/addons/cuxd
Parameter COMMON        = /usr/local/addons/cuxd/user/FB.common - v0.1.3
Parameter CONFIGFILE    = /usr/local/addons/cuxd/user/FB.cfg - v0.1.1
Parameter Debug         = /tmp/debug_'FB-main'@'fritz.box'.log

Befehl        : /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1

0 Erfolgreich
damit können wir arbeiten...

dzeh75
Beiträge: 15
Registriert: 03.09.2013, 13:14

Re: FritzBox 6.3 per CUxD steuern

Beitrag von dzeh75 » 02.12.2015, 15:38

Du meinst so?

~ # sh /usr/local/addons/cuxd/user/FB-main.sh WLANGast 1
/usr/local/addons/cuxd/user/FB-main.sh: 16: source: not found
/usr/local/addons/cuxd/user/FB-main.sh: 354: set_TR064: not found
/usr/local/addons/cuxd/user/FB-main.sh: 355: EndFritzBoxSkript: not found
~ #

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 » 02.12.2015, 15:54

hast du alles auf 755 gesetzt?
so wie es aussieht, findet das script die config-datei nicht.

wechsle mal in den ordner (usr/local/addons/cuxd/user/) und mach da ls -la. dort sollten alle dateien aus der zip sein, und auch alle auf 755!

Rilly
Beiträge: 9
Registriert: 27.09.2015, 18:55

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Rilly » 02.12.2015, 18:37

Hallo Leute,

irgendwie scheine ich auf der Leitung zu stehen, hab heute die tollen Scripte gesehen und wollte die natürlich gleich einbinden.
Ich habe ein 546e Steckdose an der Fritzbox hängen und will diese schalten, das funktioniert auch wunderbar.
Aber wie kann ich die Leistungswerte und den Status einbinden.
Ich habe Variablen erstellt und diese an den Aktor gebunden, den Status kann man wenn ich richtig gelesen habe mit cmd_timer setzen, aber wie die aktuelle Leistung? auch wird der Status nicht erkannt. Erstellt wurde die Variable CUX2801001:1-Status vom Typ Logikvariable.
Wäre super wenn da jemand einen Tip hätte.

Bei Param1 hab ich probiert die Leistung zu setzen, hat aber auch nicht gefruchtet.
/usr/local/addons/cuxd/user/FB-AHA.sh switch 24:65:11:C7:1F:CF power CUX2801001:1-Leistung
Dateianhänge
descr.jpg

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 » 02.12.2015, 18:50

Ganz schnell überflogen:
TIMER_PRESET ist leer - daher kann das auch nicht laufen - gib da mal 60 ein, für eine Minute.
cmd-timer ist fast richtig - da kommt aber nicht der name der systemvariable rein, sonder nur die seriennummer vom cuxd-gerät - den rest macht das script; du kannst aber auch anstelle des cuxd-gerätes einfach $CHANNEL$ machen:
...switch AIN state1-pt $CHANNEL$

das heiß aber, daß dir noch die Systemvariable der Temperatur fehlt, hier werden ja 4 geräte mit stati versorgt:
Status an CUxD-Remote (28) und SysVar: [CUX2801xxx:x-Status] [CUX2801xxx:x-Leistung] [CUX2801xxx:x-Temperatur]

lg

Rilly
Beiträge: 9
Registriert: 27.09.2015, 18:55

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Rilly » 02.12.2015, 19:42

Hi, vielen Dank für die schnelle Antwort. Timer Preset hab ich angepasst. Leider scheint es immer noch nicht richtig zu funktionieren, der Status wird jetzt tatsächlich auf WAHR gesetzt, aber egal ob ich aus oder einschalte, da bleibt er auch.
Ausprobiert habe ich für cmd_timer sowohl
/usr/local/addons/cuxd/user/FB-AHA.sh switch 24:65:11:C7:1F:CF state1-pt $CHANNEL$
als auch
/usr/local/addons/cuxd/user/FB-AHA.sh switch 24:65:11:C7:1F:CF state1-pt PoolHaus_Heizung:1

Im Syslog sind übrigens folgende Meldungen zu finden. (könnte daran liegen das keine Temperatur von der 546e zur Verfügung gestellt wird)
Dec 2 19:32:35 homematic-ccu2 user.err /usr/local/addons/cuxd/user/FB-AHA.sh[2588]: 192.168.0.1 -> set_CCU_SysVar: switch/CUX2801001:1-Temperatur - Fehler, keine Status.
Dec 2 19:33:35 homematic-ccu2 user.err /usr/local/addons/cuxd/user/FB-AHA.sh[2678]: 192.168.0.1 -> set_CCU_SysVar: switch/PoolHaus_Heizung:1-Temperatur - Fehler, keine Status.

Die dritte Variable CUX2801001:1-Temperatur hab ich ebenfalls erstellt, wobei mir nicht klar ist wofür die sein soll, da meines Wissens nach keine Temperatur mit dem 546e messbar ist, es wird zumindest nichts in der Fritzbox angezeigt, dafür wird aber noch die aktuelle Voltzahl angezeigt, die scheint man aber nicht ausgeben zu können, oder?

dzeh75
Beiträge: 15
Registriert: 03.09.2013, 13:14

Re: FritzBox 6.3 per CUxD steuern

Beitrag von dzeh75 » 02.12.2015, 19:46

Hallo Dragonfly,

wenn ich Deiner Anweisung folge, wird mir folgendes angezeigt:

/usr/local # cd addons
/usr/local/addons # cd cuxd
/usr/local/addons/cuxd # cd user
/usr/local/addons/cuxd/user # ls -la
drwxr-xr-x 1 boa boa 512 Oct 25 2014 .
drwxrwxr-x 1 root root 512 Mar 7 2013 ..
-rwxr-xr-x 1 root root 10067 Dec 2 14:17 FB-AHA.sh
-rwxr-xr-x 1 root root 15622 Dec 2 14:59 FB-main.sh
-rwxr-xr-x 1 root root 334 Dec 2 14:52 FB.cfg
-rwxr-xr-x 1 root root 5011 Dec 2 14:17 FB.common
-rwxr-xr-x 1 root root 183 Nov 30 18:00 cpwmd5
/usr/local/addons/cuxd/user #

Die Dateien sind also dort und die Berechtigungen stimmen auch, oder?
Kannst es Dir auch gerne via Teamviewer anschauen.

"FB-main.sh: 16: source: not found" -> in Zeile 16 steht doch "source $COMMON". Also wird die FB.common nicht geladen. Ich hab mir mit "echo $COMMON" mal den Inhalt ausgeben lassen: /usr/local/addons/cuxd/user/FB.common
Der Pfad stimmt also.
Zuletzt geändert von dzeh75 am 02.12.2015, 20:11, insgesamt 1-mal geändert.

Antworten

Zurück zu „CUxD“