FritzBox 6.3 per CUxD steuern

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

Moderator: Co-Administratoren

Benutzeravatar
koppenho
Beiträge: 227
Registriert: 27.12.2013, 09:12
Wohnort: Bad Neustadt, Deutschland
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: FritzBox 6.80 per CUxD steuern

Beitrag von koppenho » 05.02.2017, 11:54

falke69 hat geschrieben:Mir ist es halt nicht aufgefallen, dass es ein neues Update von Dragonfly gab, da ich erst im Dezember auf diesen Artikel im Forum aufmerksam wurde.
Die Version 0.1.4 der FB-main.sh von Dragonfly habe ich auch erst gestern entdeckt.
Aber: sie funktioniert bei mir nicht - zwei Probleme gibt es bei mir.

Problem 1
Die "presence"- und "online"-Funktionen FB-main.sh Version 0.1.4 (oder älter) von Dragonfly funktionieren bei mir nicht.
Das liegt an einer URL, die zweimal im Skript vorkommt:

Code: Alles auswählen

"http://$IP/query.lua?sid=$SID&network=landevice:settings/landevice/list(name,ip,mac,UID,dhcp,wlan,ethernet,active,static_dhcp,manu_name,wakeup,online,speed,wlan_UIDs,auto_wakeup,guest,url,wlan_station_type,wlan_show_in_monitor,plc)"
Meine Fritz!box kennt die folgenden Parameter nicht:
static_dhcp manu_name wlan_UIDs auto_wakeup wlan_station_type wlan_show_in_monitor
Wenn man danach fragt, nimmt das meine FB 7490 mit Fritz!OS 06.80 übel und antwortet mit einer leeren Liste. Meine FB 7390 mit Fritz!OS 06.51 in meiner Zweitwohnung antwortet zwar, aber die Parameter fehlen in der Antwort.
Daraus schliesse ich, da diese Parameter schon länger nicht mehr unterstützt werden, aber seit 06.80 zu einem Fehler (leere Liste) führen.

Lösung - Die oben genannte URL kürzen, also durch folgende ersetzen:

Code: Alles auswählen

"http://$IP/query.lua?sid=$SID&network=landevice:settings/landevice/list(name,ip,mac,UID,dhcp,wlan,ethernet,active,wakeup,online,speed,guest,url,plc)"
oder besser noch nach dem Prinzip der Datensparsamkeit nur die notwendigsten Einträge abgefragt:

Code: Alles auswählen

"http://$IP/query.lua?sid=$SID&network=landevice:settings/landevice/list(name,active,online)"
Problem 2
Meine FB 7490 mit Fritz!OS 06.80 antwortet auf die oben genannten URLs in einem anderen Format: sämtliche Zeilenwechsel (newlines) fehlen. Dadurch funktionieren die sed- und grep-Kommandos von "presence" und "online" nicht mehr.
Lösung: Ich habe die beiden Zeilen, die die oben genannte URL verwendet, umgeschrieben und auch etwas vereinfacht. Sie funktioniert bei mir mit Fritz!OS 06.80 und 06.51 - ist also rückwärtskompatibel.

:arrow: Anbei findet Ihr meine geänderte Version von FB-main.sh. Ich habe ihr die Versionsbezeichnung "0.1.4.koppenho-2017-02-05" gegeben.
FB-main.sh.v0.1.4.koppenho-2017-02-05.zip
FB-main.sh, Version 0.1.4.koppenho-2017-02-05
(2.9 KiB) 143-mal heruntergeladen
@Dragonfly: übernimmst Du die Änderung und machst eine 0.1.5 daraus?
Zuletzt geändert von koppenho am 05.02.2017, 22:54, insgesamt 1-mal geändert.
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------

Benutzeravatar
koppenho
Beiträge: 227
Registriert: 27.12.2013, 09:12
Wohnort: Bad Neustadt, Deutschland
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: FritzBox 06.80 per CUxD steuern

Beitrag von koppenho » 05.02.2017, 15:27

Hallo,

analog zu meinem vorherigen Beitrag über Probleme mit FB-main.sh, gibt es auch Probleme mit FB-AHA.sh, Originalversion 0.1.6 (oder älter) von Dragonfly, auf meiner Fritz!box 7490 unter Fritz!OS 06.80.

Problem
Jede Steuerung oder Statusabfrage der AVM-SmartHome-Geräte war seit dem Fritz!box-Upgrade auf 06.80 gestört. Als Geräte habe ich: FRITZ!DECTRepeater 100, FRITZ!DECT200 und FRITZ!Powerline546E

Auch hier konnte ich bei mir ein geändertes Ausgabeformat der FB feststellen (was merkwürdigerweise auf der FB von falke69 nicht der Fall zu sein scheint).
Die Änderung des Formats: alle "überflüssige" Leerzeichen und Zeilenwechsel fehlten bei sonst gleichen Nutzdaten. Dadurch funktionieren die sed- und grep-Kommandos nicht mehr.

Lösung
Ich habe die Abfragen in FB-AHA.sh so umgeschrieben, dass sie mit meiner FB mit 06.80 funktionieren. Leider habe ich an der FB in meiner Zweiwohnung, die noch 06.51 fährt, keine SmartHome-Geräte dranhängen. Also kann ich nicht testen ob meine Änderungen rückwärtskompatibel sind - ich gehe aber davon aus.

:arrow: Anbei findet Ihr meine geänderte Version von FB-AHA.sh. Ich habe ihr die Versionsbezeichnung "0.1.6.koppenho-2017-02-05" gegeben.
:!: Update 2017-02-06: Anhang entfernt - im meinem nächsten Arikel gibt's eine neuere Version mit mehr Bugfixes und einem neuen Feature.
@Dragonfly: übernimmst Du die Änderungen und machst eine 0.1.7 daraus?
Über den Bugfix hinaus habe ich noch ein paar shell-Variablen in Anführungszeichen (") eingeschlossen. Das reduziert die Syntax-Fehlermeldungen von der Shell, falls man mal zu wenige/falsche Parameter übergeben hat. Diese Änderung wollte ich eigentlich auch in FB-main.sh machen - hab's aber vergessen
.

Nachtrag: Meine Änderungen haben zur Folge, dass sich auch der Inhalt der temporären Datei "/tmp/FB-AHA@${IP}-devices.xml" ändert. Falls also jemand auf die verrückte Idee gekommen ist, diese Datei mit eigenen Programmen weiterzuverarbeiten ...
Zuletzt geändert von koppenho am 06.02.2017, 22:43, insgesamt 1-mal geändert.
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------

thorkillar
Beiträge: 48
Registriert: 24.01.2017, 16:46

Re: FritzBox 6.3 per CUxD steuern

Beitrag von thorkillar » 06.02.2017, 16:19

Hallo,
ich brauche Eure Hilfe.
Ich möchte gern meine DECT200 via CCU2 steuern.
Ich habe das Skript von Dragonfly von Seite 1 installiert.
Ich bekomme es auch hin, per SSH die Aktoren ein-/bzw. auszuschalten.
Was ich jetzt nicht hinbekomme, den schalter in der CCU einzurichten.
Ich habe versucht, mich durch die Anleitung ( http://www.wikimatic.de/wiki/ShellScrip ... ntegration ) durch zuhangeln,
jedoch klappt das einfach nicht.

Könnt Ihr mir sagen, was ich eintragen muss, damit es mit dem neuen Skript (die Anleitung bezieht sich auf eine ältere Version) funktioniert.
Vielen DANK
Vielen DANK
Thorkillar

Benutzeravatar
koppenho
Beiträge: 227
Registriert: 27.12.2013, 09:12
Wohnort: Bad Neustadt, Deutschland
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: FritzBox 06.80 per CUxD steuern

Beitrag von koppenho » 06.02.2017, 22:38

Hallo,

gestern habe ich Euch eine geänderte FB-main.sh bereitgestellt, die auch mit Fritz!OS 06.80 funktioniert.
koppenho hat geschrieben:... meine geänderte Version von FB-AHA.sh ... Version "0.1.6.koppenho-2017-02-05"
Leider habe ich dabei ein frühere von mir gemachte Änderung wieder verloren:
koppenho hat geschrieben:Wenn die "presence"- oder "online"-Funktion ein Gerät mehrfach sieht, dann erkennt FB-main.sh das Gerät nicht mehr.
Diesen Bugfix habe ich nun auch noch integriert.
Dabei ist mir aufgefallen, dass im neuen Fritz!OS ein Fehler in den presence- und online-Listen gefixt wurde. Wenn ich im HomeOffice mein Firmennotebook startete, dann tauchte in den presence- und online-Listen der Gerätename wie erwartet auf. Sobald ich aber die VPN-Verbindung zum FIrmennetz aufbaute, waren die Einträge wieder verschwunden. Mit Fritz!OS 06.80 bleiben die Einträge erhalten solange mein Firmennotebook aktiv ist.

Da ich schon mal dabei war die FB-main.sh zu ändern, habe ich noch etwas Neues für Euch eingebaut. Das Kommando

Code: Alles auswählen

./FB-main.sh Status-WanParameter [Name_der_SysVar-1] [Name_der_SysVar-2] [Name_der_SysVar-3]
           -> 1: kBit/s Rate Download, 2: kBit/s Rate Upload, 3: Verbindungstyp
speichert Daten in bis zu drei Systemvariablen:
  1. WAN-Verbindung Download/Downstream max. Datenrate in kBit/s
  2. WAN-Verbindung Upload/Upstream max. Datenrate in kBit/s
  3. WAN-Verbindungstyp, in der Regel der String "DSL". Hier könnte aber z.B. auch "UMTS" oder entsprechendes vorkommen.
Anwendung:
  • Die Datei FB-main.sh (angehängt an diesen Artikel) holen und zusammen mit den anderen Dateien aus dem ersten Artikel dieses Themas/Threads verwenden.
  • In der CCU zwei Systemvariablen vom Typ "Zahl" mit Minimum 0, Maximum 200000 und Einheit "kBit/s" anlegen. Das Maximum ist nur ein Vorschlag - nicht zu knapp wählen! 200000 sollte für DSL-100-Tarife (100 MBit/s) locker ausreichen.
  • In der CCU eine dritte Systemvariable vom String anglegen.
Kommando aufrufen unter Verwendung der neu angelegten Variablennamen:

Code: Alles auswählen

/usr/local/addons/cuxd/user/FB-main.sh Status-WanParameter "Name_der_SysVar-1" "Name_der_SysVar-2" "Name_der_SysVar-3"
Wenn man nicht alle Daten braucht, dann kann man Variablennamen beim Aufruf auch weglassen. Einfach an deren Stelle einen leeren String ("") übergeben.

Warum ich das eingebaut habe? Vor einem Jahr hatte meine Fritz!Box einen Defekt. Von meinem damaligen DSL-6000-Tarif konnte meine FB nur noch knapp 1000 kBit/s nutzen.
Ich habe drei Wochen lang die Ursache nicht gefunden und konnte mich nur über einen langsamen Internetzugang ärgern. Inzwischen ist die FB getauscht und den Anschluss auf einen 50MBit/s-Tarif gewechselt. Für die Datenrate habe ich mir eine Überwachung programmiert. Wenn die Datenrate unter ein bestimmtes Niveau sinkt, bekomme ich jetzt eine Warn-Email.

:arrow: Anbei findet Ihr meine geänderte Version von FB-main.sh. Ich habe ihr die Versionsbezeichnung "0.1.4.koppenho-2017-02-06" gegeben.
FB-main.sh.v0.1.4.koppenho-2017-02-06.zip
(3.2 KiB) 168-mal heruntergeladen
@Dragonfly: übernimmst Du die Änderungen und machst eine 0.1.7 daraus?
Über das neue Feature und den Bugfix hinaus habe ich noch ein paar shell-Variablen in Anführungszeichen (") eingeschlossen. Das reduziert die Syntax-Fehlermeldungen von der Shell, falls man mal zu wenige/falsche Parameter übergeben hat.

Nebenwirkungen: Meine Änderungen haben zur Folge, dass sich auch der Inhalt der temporären Datei "/tmp/FB-AHA@${IP}-devices.xml" ändert. Falls also jemand auf die verrückte Idee gekommen ist, diese Datei mit eigenen Programmen weiterzuverarbeiten ...
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------

falke69
Beiträge: 61
Registriert: 05.11.2016, 19:51

Re: FritzBox 6.3 per CUxD steuern

Beitrag von falke69 » 10.02.2017, 08:57

thorkillar hat geschrieben:Hallo,
ich brauche Eure Hilfe.
Ich möchte gern meine DECT200 via CCU2 steuern.
Ich habe das Skript von Dragonfly von Seite 1 installiert.
Ich bekomme es auch hin, per SSH die Aktoren ein-/bzw. auszuschalten.
Was ich jetzt nicht hinbekomme, den schalter in der CCU einzurichten.
Ich habe versucht, mich durch die Anleitung ( http://www.wikimatic.de/wiki/ShellScrip ... ntegration ) durch zuhangeln,
jedoch klappt das einfach nicht.
Hi thorkillar,

Dragonfly hat das hier schön beschrieben:

http://homematic-forum.de/forum/viewtop ... 60#p252904

PARAM1 [sh /usr/local/addons/cuxd/user/FritzBox.sh] -> ruft das Script auf
PARAM2 [x 192.168.125.1 CCU HomeMatic] -> der Login

....."Das Befüllen wir wie folgt (mit dem Inhalt der eckigen Klammer):".....

Du musst nur vorher CUx-Daemon Installieren und Dir eine virtuelle Fernbedinung erstellen.
2017-02-10_084154.jpg

fricastle
Beiträge: 2
Registriert: 14.02.2017, 11:37

Re: FritzBox 6.3 per CUxD steuern

Beitrag von fricastle » 14.02.2017, 12:06

Hallo,

bin gerade eben am einrichten der Steuerung der FB und wollte die Funktionen mit PUTTY vorher testen. WLAN AN und AUS hat super geklappt mit:

# sh FB-main.sh x 192.168.1.24 USER PASSWORD WLAN5G 0
<?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:2"></u:SetEnableResponse>
</s:Body>
</s:Envelope>EndFritzBoxSkript()
EXITCODE: 0
MESSAGE : Erfolgreich


Messages captured:
FritzBox Version : FRITZ!Box Fon WLAN 7390 84.06.80
Script-Version : FB-main.sh v0.1.4
verwendbar mit : FB.common v0.1.5 / FB.cfg v0.1.1
Parameter FritzBox : 192.168.1.24
Parameter Username : gesetzt
Parameter Passwd : gesetzt
Parameter HM CCU2 : 127.0.0.1
Parameter ADDONDIR : /usr/local/addons/cuxd
Parameter COMMON : /usr/local/addons/cuxd/user/FB.common - v0.1.6
Parameter CONFIGFILE : Konfiguration ueber Aufruf -
Parameter Debug : /tmp/FB-main@192.168.1.24-debug.log

Befehl : FB-main.sh WLAN5G 0

0 Erfolgreich

Dann wollte ich mein FritzFon anrufen, aber nix klingelt und die Box hängt sich auf und rebootet dann.


# sh FB-fon.sh x 192.168.1.24 USER PASSWD call **610 10
EndFritzBoxSkript()
EXITCODE: 0
MESSAGE : Erfolgreich


Messages captured:
FritzBox Version :
Script-Version : FB-fon.sh v0.1.0
verwendbar mit : FB.common v0.1.6 / FB.cfg v0.1.1
Parameter FritzBox : 192.168.1.24
Parameter Username : gesetzt
Parameter Passwd : gesetzt
Parameter HM CCU2 : 127.0.0.1
Parameter ADDONDIR : /usr/local/addons/cuxd
Parameter COMMON : /usr/local/addons/cuxd/user/FB.common - v0.1.6
Parameter CONFIGFILE : Konfiguration ueber Aufruf -
Parameter Debug : /tmp/FB-fon@192.168.1.24-debug.log

Befehl : FB-fon.sh call **610 10

0 Erfolgreich
#

Was mach ich falsch??? Scheinbar wird die Fritzbox Version nicht erkannt / geprüft / das Script nicht richtig ausgeführt. Die FB-common ist v.0.1.6, das hab ich geprüft.

Grüße Sam

Andreas123
Beiträge: 2
Registriert: 15.02.2017, 12:43

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Andreas123 » 15.02.2017, 13:41

Hallo, ich bin Andreas und neu hier.
Ich bin Anfänger, habe Stunden hier im Forum gelesen und finde es Klasse was ihr hier eingestellt habt.

Ich habe es geschaft mit der HM CCU2 WLAN und soweiter zu Schalten, aber leider funktioniert bei mir die FB-fon.sh nicht richtig. Ich würde gerne ein oder alle Fritzfon (FB6490 KD OS:6.5 ) klingeln lassen. Aber leider bleibt es Stumm, kann mir jemand helfen?
# sh /usr/local/addons/cuxd/user/FB-fon.sh call 610
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:dslforum-org:control-1-0">
<errorCode>501</errorCode>
<errorDescription>Action Failed</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>BusyBox v1.20.2 (2016-11-22 12:43:12 CET) multi-call binary.

Usage: sleep N

Pause for N seconds

<?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:X_AVM-DE_DialHangupResponse xmlns:u="urn:dslforum-org:service:X_VoIP:1"></u:X_AVM-DE_DialHangupResponse>
</s:Body>
</s:Envelope>EndFritzBoxSkript()
EXITCODE: 0
MESSAGE : Erfolgreich


Messages captured:
FritzBox Version : FRITZ!Box 6490 Cable (kdg) 141.06.50
Script-Version : /usr/local/addons/cuxd/user/FB-fon.sh v0.1.0
verwendbar mit : FB.common v0.1.6 / FB.cfg v0.1.1
Parameter FritzBox : 192.168.178.1
Parameter Username : gesetzt
Parameter Passwd : gesetzt
Parameter HM CCU2 : 127.0.0.1
Parameter ADDONDIR : /usr/local/addons/cuxd
Parameter COMMON : /usr/local/addons/cuxd/user/FB.common - v0.1.6
Parameter CONFIGFILE : /usr/local/addons/cuxd/user/FB.cfg - v0.1.1
Parameter Debug : /tmp/FB-fon@192.168.178.1-debug.log

Befehl : /usr/local/addons/cuxd/user/FB-fon.sh call 610

0 Erfolgreich

falke69
Beiträge: 61
Registriert: 05.11.2016, 19:51

Re: FritzBox 6.3 per CUxD steuern

Beitrag von falke69 » 16.02.2017, 16:12

Andreas123 hat geschrieben:Hallo, ich bin Andreas und neu hier.
Ich bin Anfänger, habe Stunden hier im Forum gelesen und finde es Klasse was ihr hier eingestellt habt.

Ich habe es geschaft mit der HM CCU2 WLAN und soweiter zu Schalten, aber leider funktioniert bei mir die FB-fon.sh nicht richtig. Ich würde gerne ein oder alle Fritzfon (FB6490 KD OS:6.5 ) klingeln lassen. Aber leider bleibt es Stumm, kann mir jemand helfen?
fricastle hat geschrieben: Hallo,

bin gerade eben am einrichten der Steuerung der FB und wollte die Funktionen mit PUTTY vorher testen. WLAN AN und AUS hat super geklappt mit:
Hallo,

ich bin zwar auch nicht gerade der Überflieger und lerne hier im Forum aber viel dazu. :D
Bei einem Kumplel lag es an der Anmeldung an der Fritzbox.
Ich selbst nutze die "Anmeldung mit dem FRITZ!Box-Kennwort."
Mein Kumpel musste auf "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" umstellen.
2017-02-16_155652.jpg
Weiterhin habe ich die Wählhilfe auf der FritzBox aktiviert.

Die Scripte müssen um Verzeichnis: "/usr/local/addons/cuxd/user/ mit den entsprechenden Berechtigungen liegen.
2017-02-16_155915.jpg
Zum Hochladen auf die CCU nutze ich WinSCP
https://winscp.net/eng/docs/lang:de?#ut ... aign=5.9.3

Mit Putty komme ich nicht zurecht. :cry:

Dann einfach mal ein Progamm erstellen und ein Script mit dem Inhalt:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("sh /usr/local/addons/cuxd/user/FB-fon.sh call Deine Handynummer 30");
erstellen.

Andreas123
Beiträge: 2
Registriert: 15.02.2017, 12:43

Re: FritzBox 6.3 per CUxD steuern

Beitrag von Andreas123 » 16.02.2017, 22:16

@ falke 69
Danke, ich glaub es lag an der Wählhilfe, jetzt kann ich zumindest aus der Putty heraus die Telefone klingeln lassen.

fricastle
Beiträge: 2
Registriert: 14.02.2017, 11:37

Re: FritzBox 6.3 per CUxD steuern

Beitrag von fricastle » 17.02.2017, 09:58

Hallo falke69,

nur keine falsche Bescheidenheit, es scheint du hast geholfen.

Die Wählhilfe ist das Problem. Das hier ausgewählte Gerät ist das, mit dem man dann über den Befehl telefoniert. Hab ich so zwar nirgends gelesen, aber im Test zeigt sich, dass es passt.

Wenn ich hier mein Fritzfon **610 einstelle und intern mit
dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("sh /usr/local/addons/cuxd/user/FB-fon.sh call **2 10");
die zweite analoge Nebenstelle an der FB anrufe klingelt es. Sobald dort abgehoben wird klingelt dann auch das Fritzfon und die Verbindung ist hergestellt.

Nur kann ich so natürlich nicht auf dem Fritzfon anrufen lassen, weil es sich ja nicht selbst anrufen kann.

Vielen Dank schon mal!!
Grüße Sam

Antworten

Zurück zu „CUxD“