[Problem] Adruino Firtzbox 7113 seriell

acidcoolxxx

Neuer User
Mitglied seit
14 Okt 2012
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hi Leute

hab ein Problem :/

Meine alte 7113 hat ausgedient und da dachte ich mir, spielste bisschen mit rum. Hab mir ne Freetz draufgehauen um die serielle schnittstelle zu nutzen. Das ganze soll mit meine Arduino kommunizieren. Da ich keine Z-diode oder Pegelwandler hab hab ich die 5V mittels zwei Wiederständen auf 3,3v gebracht.
So nun zum problem:
Ich sende mit dem Arduino eine Zeichenkette (Test), doch beim auslesen bekomme ich nichts. Vllt liegt es an der auslese methode ^^ bin in linux nicht so der Ass

auslesen tu ich mit
Code:
cat /dev/ttyS0

Die infos hab ich von http://www.wehavemorefun.de/fritzbox/Serielle_Konsole#Anschluss_der_Box_an_eine_andere_Fritzbox
gepatch hab ich auch :/

jemand ne idee?

Mfg Ac!D
 
Wenn ich das richtig verstehe, ist doch die serielle Schnittstelle bei einer unmodifizierten Box mit einer shell belegt - also sowas, wie das, wo Du mit telnet reinkommst, nur ohne dass Du ein login brauchst. Wenn die serielle Konsole aber die Daten, die der Arduino sendet, bereits entgegen nimmt, was soll der cat-Befehl denn noch holen?

Um zu testen, ob die Verbindung funktioniert, würde ich den Arduino einen echten Kommandozeilenbefehl an die serielle Konsole senden lassen. Z.B., wenn die Wahlhilfefunktion aktiviert ist, den Arduino auf Knopfdruck ein

ctlmgr_ctl w telcfg command/Dial <nummer> (enter)

senden lassen. Wenn die Konsole richtig verbunden ist, müsste eigentlich die FBF die Wahl der Nummer auslösen.

Das wäre dann auch schon die erste sinnvolle Anwendung: Per Knopdruck vom Arduino Funktionen der FBF steuern.

Da bietet sich ja eine ganze Liste an:
- Rufumleitung aufs Handy an/ausschalten
- Türklingeln -> Rundruf
- Ruhe vor dem Telefon an/aus
- Alarmschaltung
...

Interessieren würde mich dann auch, wie man mit dem Arduino Zeichenketten, die über die serielle Konsole kommen, auswerten könnte. Dann könnte man z.B. vom Callmonitor ein "SET-PIN1" auf die Konsole geben lassen, wenn von einem bestimmten Telefon auf eine bestimmte Nummer angerufen wird.

Richtig interessant wirds natürlich erst, wenn man Hook und Ring vorm Lineinterface abgreift. Wenn eine am Arduino angeschlossene Taste gedrückt wird, sendet dieser ctlmgr_ctl w telcfg command/Dial <nummer> (enter). Nimmt der Angerufene ab, klingelt "Ring". Der Arduino erkennt dies und aktiviert einen Pin, der mit Hook verbunden ist. Der Callmonitor erkennt, wenn die Verbindung aufgelegt wurde und sendet dem Arduino den Befehl, den Hook-Pin wieder abzuschalten (also aufzulegen). Ein Anruf auf eine nicht existierende Nummer, z.B. 0001 veranlasst den Callmonitor dazu, einen anderen Pin des Arduinos zu aktivieren - für 10 Sekunden. Dran hängt ein elektronisches Lastrelais für einen Türöffner.
Alles in allem nennt man das dann FTZ123D12 Türsprechinterface. Mit einer Vielzahl von Klingeltasten, je nach Arduino.

Ich habe das auch schon länger vor, doch mir fehlt die Zeit :(

Das Problem ist ja zunächst, dass Du nicht sicher weist, ob überhaupt die serielle Verbindung funktioniert. Ich würde schritt für Schritt vorgehen, erstmal mit seriellem Kabel und Terminalprogramm testen, ob die Schnittstelle läuft und was man senden kann/muss, um eine Reaktion festzustellen. Dann den Arduino programmieren und die Verbindung testen.
 
Um zu sehen, ob es auf der Box generell geht, solle es reichen, Rx und Tx der Box zu verbinden und in einer zweiten Telnet-Session mit "echo hallo > /dev/ttyS0" was auszugeben, was dann sichtbar werden sollte...

Hast du auch "Rx" als "Eingang" genutzt? Das Kabel kurz mit GND "verbinden" (die zwei Kabelenden "überstreichen") sollte "Müllzeichen" bringen ;-)
 
das hat ganz gut funktioniert. Liegt wohl am Code vom Arduino... vllt ist das auch ne andere Baudrate. kann ich den sehen welche Baudrate eingestellt ist?

alles klar :) es lag an der Baudrate, ich hatte am arduino 9800 eingestellt und es war 38400. Zusätzlich hab ich den seriel port 1 vom Arduino benutzt und siehe da, es funktioniert. Danke für den Tipp mit dem kurzschliessen hat mir sehr geholfen.
 
Zuletzt bearbeitet:
Hallo
Wenn du die Baudrate des seriellen Ports der Box meinst, dass steht hier drin (Auszug):
Code:
[B][COLOR="#800080"]# cat /var/env[/COLOR][/B]
HWRevision      129
ProductID       Fritz_Box_7113
SerialNumber    0000000000000000
annex   B
autoload        yes
bootloaderVersion       1.310
bootserport     tty0
cpufrequency    125000000
firstfreeaddress        0x946C0D14
firmware_version        avm
firmware_info   60.04.68
flashsize       0x00800000
maca    00:00:00:00:00:00
macb    00:00:00:00:00:00
macwlan 00:00:00:00:00:00
macdsl  00:00:00:00:00:00
memsize 0x01000000
[B][COLOR="#800080"]modetty0        38400,n,8,1,hw[/COLOR][/B]
modetty1        38400,n,8,1,hw
mtd0    0x90000000,0x90000000
mtd1    0x90010000,0x90780000
mtd2    0x90000000,0x90010000
mtd3    0x90780000,0x907C0000
mtd4    0x907C0000,0x90800000
my_ipaddress    xxx.xxx.xxx.xxx
prompt  Eva_AVM
ptest
req_fullrate_freq       125000000
sysfrequency    125000000
urlader-version 1310
.....
Ich glaube, wenn es bei dir dann funktioniert, werden dann beim Booten die Kernelmeldungen ausgegeben.
(Hab dass aber noch nie gemacht)

Viel Glück
 
Zuletzt bearbeitet:
Versuche es mit stty:
Code:
root@Speedport:/var/mod/root# stty -F /dev/ttyS0
speed 38400 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint ixoff -imaxbel
root@Speedport:/var/mod/root# 
root@Speedport:/var/mod/root# stty -F /dev/ttyS0 300
root@Speedport:/var/mod/root# 
root@Speedport:/var/mod/root# stty -F /dev/ttyS0
speed 300 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint ixoff -imaxbel
root@Speedport:/var/mod/root#
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.