FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: kblc am 16 November 2014, 02:26:53

Titel: FHEM auf Fritz!Box fhemcmd.sh
Beitrag von: kblc am 16 November 2014, 02:26:53
Hallo und Hallo,

ich suche jetzt schon seit einiger Zeit im Internet, werde aber leider nicht fündig.
Meine Fähigkeiten mit Programmiersprachen umzugehen sind NOCH nicht so toll, aber das will ich ja eben lernen. Ich hoffe ich bekomme wieder einmal hier ein wenig Unterstützung:

Ich habe eine FritzBox und habe (trotz Warnung und Update-Risiko und so) FHEM darauf gelassen. Raspberry pi wäre echt toll, aber im Moment leider nicht mal der im Budget.
Die FritzBox soll eine URL aufrufen, die dann wiederum in meiner CCU ein Licht steuert und zwar per Tastendruck des FritzFons.

Folgenden Code habe ich mir zusammen gesucht und gebastelt und in fhemcmd.sh gespeichert:
#!/bin/sh

## FritzBox 7390
## Beispiel fuer das Senden von FHEM Kommandos ueber den Telefoncode
## #95*x* wobei x hier 1 bzw 2 entspricht.

case $1 in

1) wget -q 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject('BidCos-RF.JEQ0296230:1.STATE').State(1)'
;;
2) wget -q 'http://192.168.78.1:8083/fhem?cmd={GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject('BidCos-RF.JEQ0296230:1.STATE').State(0)'}'
;;

esac


1 und 2 funktionieren beide noch nicht. Ich hoffe der obere (also 1)) sollte gehen, sonst Zweifel ich an dem, was ich mühevoll gelernt habe. Der Link http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject('BidCos-RF.JEQ0296230:1.STATE').State(0))funktioniert im Browser und wird ähnlich auch schon in fhem.cfg verwendet (fhem.cfg ist angehängt).

Außerdem habe ich hier  http://kress.it/2013/10/fhem-befehle-mit-fritzbox-telefon-steuern/ (http://kress.it/2013/10/fhem-befehle-mit-fritzbox-telefon-steuern/) gelesen, dass ich
ln -sf /var/media/ftp/fhem/FHEM/fhemcmd.sh /var/fhemcmd und
nvi /var/flash/debug.cfg und
ln -sf /var/media/ftp/Fritz/fhemcmd.sh /var/fhemcmdeingeben soll, damit es klappt. Ich vermute  stark über telnet. Telnet funktioniert, und ich finde auch alles wenn ich es mit ls suche. Leider klappt es mit dem speichern nicht. Irgendwas mache ich doch schon wieder falsch, oder?


Folgendes steht im Terminal:


Last login: Sun Nov 16 01:43:58 on ttys000
KBLc-Mac-3:~ kblc$ telnet 192.168.78.1
Trying 192.168.78.1...
Connected to fritz.box.
Escape character is '^]'.
password:


BusyBox v1.20.2 (2014-07-04 14:29:21 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/1"
weitere telnet Verbindung aufgebaut
disable start/stop characters and flowcontrol
# nvi /var/flash/debug.cfg
cat: can't open '/var/flash/debug.cfg': No such file or directory
# ln -sf /var/media/ftp/fhem/FHEM/fhemcmd.sh /var/fhemcmd
#
# nvi /var/flash/debug.cfg
cat: can't open '/var/flash/debug.cfg': No such file or directory
# wq!
-sh: wq!: not found
# ZZ
-sh: ZZ: not found
#


Anbei auch noch mal die fhem.cfg falls die zur Lösung meines Problems helfen kann:
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global sendStatistics manually
attr global statefile ./log/fhem.save
attr global uniqueID ./FHEM/FhemUtils/uniqueID
attr global updateInBackground 1
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

define FritzBox FB_CALLMONITOR 192.168.78.1:1012
attr FritzBox event-on-change-reading event
attr FritzBox reverse-search internal


################---Anrufwarnung---#########################


#Verbindung zu Homematic bei Anruf
#define TelefonAN notify FritzBox:event:.ring {GetFileFromURL #'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("BidCos-#RF.JEQ0296230:1.STATE").State(1)'}

#Verbindung zu Homematic bei Anruf
define TelefonAN notify FritzBox:event:.ring {GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("CUxD.CUX0200004:1.STATE").State(1)'}

#Verbindung zu Homematic bei Anruf wieder aus
define TelefonAUS notify FritzBox:event:.disconnect {GetFileFromURL 'http://192.168.78.111:8181/fhem2ccu.exe?Status=dom.GetObject("CUxD.CUX0200004:1.STATE").State(0)'}


###---ENDE---################---Anrufwarnung---#########################





################---integration Wetterdaten---#########################

#include ./FHEM/dummy.cfg
include ./FHEM/wetter.cfg

###---ENDE---################---integration Wetterdaten---#########################


Vielen Herzlichen Dank für jede Unterstützung.
Titel: Antw:FHEM auf Fritz!Box fhemcmd.sh
Beitrag von: Mani007 am 16 November 2014, 07:45:57
Hallo,

Welche fritz!OS hast du den drauf ? Ab 6.20 gibt es keine debug.cfg und der telefoncode funktioniert nicht mehr.

http://forum.fhem.de/index.php/topic,28208.0.html

Hast du mal geschaut ob du überhaupt nvi  auf der Fritzbox hast  ?
Und wq! Ist der Befehl in VI oder NVI die Datei zu speichern.
Titel: Antw:FHEM auf Fritz!Box fhemcmd.sh
Beitrag von: kblc am 16 November 2014, 10:37:13
Hallo
vielen Dank für die schnelle Antwort.

Ich habe auf der FB die

FRITZ!OS 06.10-28634 BETA


Fritzbox hat nvi - Auszug aus dem Terminal:

# ls /usr/bin
access_check                 mkfifo
aha                          moh_upload
ahamailer                    nohup
arping                       nslookup
audiod                       nvi
basename                     passwd
bspatch                      pbd
bunzip2                      pbd_upload_image
bzcat                        pbd_upload_ringtone
bzip2                        printf
capiotcp_server              profile
checkempty                   readlink
checkperformance             realpath
cmp                          reset
csvd                         resettam
ctlmgr                       seq
ctlmgr_ctl                   setcountry
cut                          setlanguage
dect_bg_image_conversion.sh  sort
dect_manager                 system_status
dect_ringtone_conversion.sh  tail
dirname                      tam_play
docsis_lifetest.sh           tam_upload_voice_prompt
dtrace                       tee
du                           telefon
env                          test
ether-wake                   tftp
expr                         time
faxd                         top
finalize.sh                  tr
find                         tr069fwupdate
free                         traceroute
ftpget                       tty
ftpput                       umtsd
gcalupd                      uniq
httpsdl                      unzip
id                           uptime
killall                      vdsl
killall5                     vdsld
library.sh                   wc
logname                      wget
lte_lifetest.sh              wlan_lifetest.sh
md5sum                       xargs
mkconfigfile
#


Gibt es eine andere Möglichkeit, mit dem Telefon zu schalten? Denn ich bekomme es ja auch hin, bei eingehenden Anruf eine Aktion auszuführen.

Ich frag einfach mal nach, bin halt noch Anfänger.

Vielen Dank für die schnelle Hilfe.
Titel: Antw:FHEM auf Fritz!Box fhemcmd.sh
Beitrag von: Mani007 am 16 November 2014, 12:29:32
Dann würde mir spontan einfallen ruf dich selbst an und frage deine nummer im FB_Callmonitor ab. Oder vielleicht hast du mehrere Telefonnummern und nim da eine her .
Titel: Antw:FHEM auf Fritz!Box fhemcmd.sh
Beitrag von: kblc am 16 November 2014, 12:50:36
OK, Danke.

Werde mich gleich mal drübermachen. Ich kann mir das zwar noch nicht ganz realisiert vorstellen, aber probieren geht ja über studieren :-)
Mal sehen wie weit ich komme.
Ich werde Berichten wenn es funktioniert oder erneut um Hilfe schreien, wenn ich wieder wo feststecke.

Schönes Wochenende noch und nochmals herzlichen Dank.