FritzBox als Klingel

Begonnen von cornelius fillmore, 12 Juni 2013, 09:25:01

Vorheriges Thema - Nächstes Thema

MC_Fhem

Hallo zusammen,

bin jetzt doch noch dahinter gekommen.

Im sub FBCallr habe ich folgende Zeile ausgetauscht:

$telnet->waitfor('/login: $/i');  -->  $telnet->waitfor('/user: $/i');


Meine Fritz-Box fragte nach "user" nicht nach "login" deshalb die Fehlermeldung timed-out.

Ich hoffe ich kann damit auch anderen weiter helfen!

Grüße Toni

tagedieb

Hallo zusammen
ich habe mal  mit dieser tollen Anleitung, jedoch miot meinem Anfängerwissen versucht, die ganze Sache nachzustellen.
Doch irgendwo habe ich noch einen grossen Denkfehler, denn mir sagt die Log
fbcallr: Connecting to 192.168.x.xx:22
Klingel1_on return value: problem connecting to "192.168.xx.xx", port 23: Connection refused at ./FHEM/99_myUtils.pm line 21
(IP Adresse der FB hier verändert)
und woher kommt der Port 23? - wo wird dieser hinterlegt?
das ist die besagte "line 21"
$telnet->open($Port);
welchen Port müsste ich denn dort eintragen?
die bereits probierten Ports 1011,1012, 22 oder23 - ergeben die Fehlermeldung Klingel1_on return value: unknown remote host:  at ./FHEM/99_myUtils.pm line 21

Ich freue mich über jede Hilfestellung

gruss tagedieb

FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

whyte

Sorry, dass ich den alten Thread nochmal hoch hole, aber ich bin am verzweifeln ...

Hallo,

ich möchte, wenn bei mir die Haustür aufgemacht wird und noch ein Fenster in der Wohnung offen ist, einen Rundruf auf meine Telefone über die Fritzbox haben. Gesteuert wird es von einem Pi.

Dazu bin ich nach diesem Thread vorgegangen und habe folgendes erstmal gemacht:

Ein Include angelegt und in der fhem.cfg importiert:
include /opt/fhem/FHEM/HaustuerOeffnen.cfg

Im Include "HaustuerOeffnen.cfg" steht folgendes:
# Push wenn Haustür geöffnet, aber Fenster noch offen ist
define FentsterStillOpen notify Haustuer.open {\
FBrcall;;\
}


In der 99_myUtils.pm steht dann dies hier:
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
sub FBrcall {
use Net::Telnet;
my $duration = 10;
my $name = "FBrcall";
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
my $output = "";
$telnet->open('fritz.box');
$telnet->waitfor('/password: $/i');
$telnet->print('pass!234');
$telnet->waitfor('/# $/i');
$telnet->print('echo "ATP 2 ATD**9" | nc 127.0.0.1 1011');
$telnet->waitfor('/# $/i');
sleep($duration);
$telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
$telnet->waitfor('/# $/i');
$telnet->print('exit');
return;
}
1;


Ich vermute fast, ich sehe den Wald vor Bäumen nicht.
Der Fehler lautet:
2014.07.23 14:23:17 3: FentsterStillOpen return value: pattern match read eof at ./FHEM/99_myUtils.pm line 19
was wohl auf die Zeile:
$telnet->waitfor('/# $/i');

nur ich habe 0 Plan, warum das dem nicht passt.
Einzig, das Passwort mit einem ! wäre hier evtl. verdächtig. Aber ich habe auch schon versucht, es mit einem \ zu maskieren. (Ist ein ausgedachtes Passwort in ähnlicher Konstellation, nicht mein tatsächliches).

Ich bin dankbar für Tipps.
Whyte



MC_Fhem

Hallo whyte,

ich hatte den gleichen Fehler und hatte meine Lösung oben am 17. Juni 2014 eingestellt!

Im sub FBCallr habe ich folgendes ausgetauscht:

$telnet->waitfor('/login: $/i');  -->  $telnet->waitfor('/user: $/i');


Meine Fritz-Box fragte nach "user" und nicht nach "login" deshalb die Fehlermeldung timed-out.

Ich hoffe es hilft dir weiter.

Grüße

Toni

whyte

Hallo,
danke für die Rückmeldung, jetzt muss ich auch Rückmeldung geben ;-)

Meine FB fragt nur nach Passwort, von daher habe ich die Zeile bei mir garnicht bei.

Aber ich habe jetzt eine, meiner Meinung nach auch elegantere Lösung gefunden.
Ich nutze jetzt expect:

Das in eine Datei, z.b. /opt/fritzbox/roundcall.expect
#!/usr/bin/expect

spawn telnet fritz.box
expect "password:"
send "meinPasswort\n"
expect "#"
send "echo \"ATP 2 ATD**9\" | nc 127.0.0.1 1011\n"
expect "#"
sleep 15;
send "echo \"ATH0\" | nc 127.0.0.1 1011\n"
expect "#"
send "exit"
exit


und aufgerufen wird das dann in der fhem.cfg mit:
system("/usr/bin/expect /opt/fritzbox/roudcall.expect &");;\

Vorteile:
Man kann die fhem.cfg klein halten, da nur ein Aufruf erfolgt.
Man kann die Datei außerhalb schön editieren und auch einfach testen mit expect <datei>
Der system-Aufruf in der fhem wird in den Hintergrund gesetzt und hält den Ablauf nicht durch den sleep auf.

awel

Neue AVM-Versionen ohne NetCat

Hallo,

gibt es auch eine Wählmöglichkeit für die neueren AVM-Firmware-Versionen ohne NetCat?
FHEM läuft auf einem Raspberry, Fritzbox 7390 - und wie gesagt: kein nc auf der Box.

Danke und Gruß
awel

fiedel

Hi Awel,

suche mal im Forum und im IP- Phone- Forum nach Fritzbox- API. Damit kannst du die Box dazu bringen Nummern zu wählen.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

vw2audi

Hallo ich habe auch einmal mein Glück versucht, aber bekomme es nicht ganz hin.

Im Log File steht nur dieses:

2015.01.16 01:40:29 3: sudo bash : Unknown command sudo, try help.
2015.01.16 01:40:29 1: fbcallr: Connecting to FritzBox:192.168.178.1
2015.01.16 01:40:30 1: fbcallr: Dialing to FritzBox: from:0 to:**623...
2015.01.16 01:40:30 1: fbcallr: Dialing:10 seconds...
2015.01.16 01:40:40 1: fbcallr: HangOn to FritzBox...
2015.01.16 01:40:40 1: fbcallr: Disconnecting...

schaut ja aus, als ob es geht, aber es passier nichts :-(
Fhem auf Raspberry PI3, sonoff: RFBridge, PIR, Basic, POW, Dual.... , FS20: FHT 80TF-2 (3x); FS20-Piri2 (1x)
S300TH (1x); FS20-ST (6x); FS20-SU (3x); FS20 WS1 (2x); Fritz: DECT200 (3x), Z-Wave: diverse Schalter.... , HomeMatic: Heizungsregler

fiedel

Sieh dir mal dieses Modul an, damit sollte das und vieles Andere funktionieren. Voraussetzung ist ein geöffneter Telnet- Port auf der FB.

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Heiner

Hi, ich komme nicht weiter. Mein Code funktioniert zwar im Prinzip, aber meine FB will nicht.

Laut: http://www.ip-phone-forum.de/showthread.php?t=272463

scheint meine Fritzbox 7390 mit letzter Firmware 6.23 nicht mehr über nc und netcat zu verfuegen.
Keine Ahnung ob das von Fritz so gewollt ist oder ob nur meine Box spinnt, ich weiss auch nicht wie ich nc und netcat wieder da drauf bekomme. Hat jemand Rat? :-[

und damit geht der Befehl unter Telnet and der Fritzbox
echo "ATD**9" | nc 127.0.0.1 1011 auch nicht !!!

Nach dem anlegen des Files wie im Link beschrieben funktioniert nun aber dieser code:
sh /var/tmp/dialer.sh **9 :)

Nur, wie muss ich nun meine myUtils99.pm verändern? :-[
Heiner
--------------------------------
fhem auf Pi3+
CUL 868MHz, Signalduino 434MHz, HM-CFG-USB
HM, THZ, Kostal, Somfy, Conbee, Pytonbinding, FritzBox, FTUI, MQTT2

jkriegl

wie fiedel schrieb geht das mit dem Fritzbox-Modul sehr einfach.
z.B. Fenster offen Erkennung beim HM-Thermostat
define Terrassentueroffen DOIF ([HM_WoZi_Clima:desired-temp] eq "12.0") (set myfritz ring 610 45 show:Terrassentuer)
Klingelt u. zeigt den Text an.
Rpi 3/4, buster, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly