FB_Callmonitor - Anruf wenn Aktor "Ein" bzw. "Offen"

Begonnen von schnun, 07 Februar 2014, 21:50:07

Vorheriges Thema - Nächstes Thema

schnun

Hallo FHEMler,

ich habe nach langem stöbern hier im Forum FHEM2FHEM auf meiner FB 7270 V2 zum laufen bekommen.
Hauptserver ist mein Raspi.
Grund ist das ich einen Anruf über mein Haustelefon (nicht DECT) möchte wenn u.g. Sender (Endschalter am Garagentor, dieser gibt Signal an
einen Intertechno ITS-2000) auf "Offen" schaltet.

Ich habe das zuvor mit Tasker und andFHEM probiert. Funktioniert auch, nur braucht Tasker ca. 5 min um den Anruf auszulösen.

Ich finde hier im Forum irgendwie nichts passendes, oder ich suche vielleicht auch falsch  :-\

Kann mir jemand helfen das zu realisieren, falls es überhaupt möglich ist ?

Hier ein Auszug aus der .cfg:

define garage_Tor TRX_LIGHT AC 00a243be02 light
attr garage_Tor eventMap on:Zu off:Offen
attr garage_Tor onOffDevice true
attr garage_Tor room Garage
define FileLog_garage_Tor FileLog ./log/garage_Tor-%Y.log garage_Tor
attr FileLog_garage_Tor logtype text
attr FileLog_garage_Tor room Garage
define garage_TorAuf notify garage_Tor.*|schlazi_AlarmGarage.*|garage_Fenster.* {\
my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
if ( $hm gt "00:00" && $hm lt "06:00" || $hm gt "22:30" && $hm lt "23:59" &&\
$value{garage_Tor} eq "Offen" &&\
$value{garage_Fenster} eq "Zu" &&\
$value{schlazi_AlarmGarage} eq "Aus") {\
fhem ("set schlazi_AlarmGarage Ein");;\
DebianMail('xxxxxxx@@online.de','Meldung Tor Garage Auf','Garagentor ist offen !!!');;\
}\
}

Danke.

Gruß
Patrick
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter


schnun

Okay, danke. Habe folgendes eingegeben (anderer Aktor da die Kinder schon schlafen  :D )

define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.* {`echo "ATD**1" | nc 127.0.0.1 1011`}

Die **1 ist lt. FB mein Telefon, aber es rührt sich nichts...?
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

Gernott

Zitat von: schnun am 07 Februar 2014, 22:57:50

define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.* {`echo "ATD**1" | nc 127.0.0.1 1011`}

Die **1 ist lt. FB mein Telefon, aber es rührt sich nichts...?

da kann ich Dir nicht helfen. Ich nutze die Variante, über ein SIP-Programm eine Telefonanlage an der Fritzbox anzurufen. Diese Variante oben scheint nur zu gehen, wenn FHEM auf der Fritzbox selbst läuft.

mi.ke

Hier findest Du die Lösung:
http://forum.fhem.de/index.php/topic,13305.msg97321.html#msg97321

erst die 99_myUtils.pm ergänzen
dann mit FBCALLr ansprechen


define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*{FBCallr(1,"**TELEFON_DAS_KLINGELN_SOLL",20,"xxx.xxx.xxx.xxx","FRITZBOXBENUTZERNAME","PASSWORT")};
}


Viel erfolg
cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

schnun

Danke mi.ke, aber ich krieg's leider nicht gebacken was ich in der 99_myUtils.pm genau eintragen muss.
Habe schon etliches probiert aber es will nicht. Kannst Du mir nochmals helfen ?

Hier mein vorheriger Versuch. Die User-Zeilen habe ich gelöscht da ich ohne Benutzername, nur mit Passwort auf die FB gehe.
Mir ist klar das ich einiges falsch gemacht habe, aber ich bin immer noch Newbie...  ::)

sub
FBCallr($$$$$$)
{
use Net::Telnet;
fhem("sudo bash");
my $name = "fbcallr";
my ($**1,$0172...,$20,$192.168.xxx.x,$xxx)= @_;
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
Log GetLogLevel($name,1), "$name: Connecting to FritzBox:$192.168.xxx.x";
$telnet->open($Port);
$telnet->waitfor('/login: xxx/i');
  $telnet->waitfor('/Password:xxx/i');
$telnet->print($xxx);
$telnet->waitfor('/# $/i');
Log GetLogLevel($name,1), "$name: Dialing to FritzBox: from:$**1 to:$0172...";
$telnet->print('echo "ATP'.$**1.'2 ATD**'.$0172...'" | nc 127.0.0.1 1011');
my $output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,1), "$name: Dialing:$Duration seconds...";
sleep($Duration);
Log GetLogLevel($name,1), "$name: HangOn to FritzBox...";
$telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
$output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,1), "$name: Disconnecting...";
$telnet->print('exit');
return;
}

Danke
Patrick
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

schnun

Hallo zusammen,

kann mir evtl. jemand helfen ?
Ich schaffe es einfach nicht.

Danke.

Gruß
Patrick
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

mi.ke

#7
nee, versuch mal so . . .

unverändert in die 99_myUtils.pm

###################################################################
sub
FBCallrpi($$$$$$)
{
use Net::Telnet;
my $name = "fbcallr";
my ($Fon,$CallNr,$Duration,$Port,$Password)= @_;
my $telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
Log GetLogLevel($name,1), "$name: Connecting to FritzBox:$Port";
$telnet->open($Port);
  $telnet->waitfor('/password: $/i');
$telnet->print($Password);
$telnet->waitfor('/# $/i');
Log GetLogLevel($name,1), "$name: Dialing to FritzBox: from:$Fon to:$CallNr...";
$telnet->print('echo "ATP'.$Fon.'2 ATD**'.$CallNr.'" | nc 127.0.0.1 1011');
my $output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,1), "$name: Dialing:$Duration seconds...";
sleep($Duration);
Log GetLogLevel($name,1), "$name: HangOn to FritzBox...";
$telnet->print('echo "ATH0" | nc 127.0.0.1 1011');
$output = $telnet->waitfor('/# $/i'); print $output;
Log GetLogLevel($name,1), "$name: Disconnecting...";
$telnet->print('exit');
return;
}
###################################################################




dann in der cfg
define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*{FBCallrpi(1,"**1",20,"xxx.xxx.xxx.xxx","PASSWORT")};
}


hier Deine Fritzbox-IP-Adresse eintragen   =>  xxx.xxx.xxx.xxx
hier Dein Fritzboxpasswort => PASSWORT

sicherstellen das Telnet auf der Fritte aktiviert ist.

Cheers
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

schnun

Danke vielmals für die Hilfe, aber es tut sich leider immer noch nichts.

Telnet ist aktiviert und connected. Sub ist unverändert in die 99_myUtils übernommen.

Der Code:
define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*{FBCallrpi(1,"**620",20,"192.xxx.xxx.xxx","meinFBPW")};
}

bringt mir eine Syntax-Fehlermeldung nach dem speichern der .cfg. Habe auch da noch rumgebastelt (geschweifte Klammer am Ende weg etc.).
Fehlermeldung zwar weg, aber sonst nix, nada, nullinger.

Folgendes über Telnet auf der Fritzbox Konsole lässt meine Telefone klingeln:

echo "ATP2 ATD**9" | nc 127.0.0.1 1011
sleep 15
echo "ATP2 ATH" | nc 127.0.0.1 1011

Wenigsten das.

Ich glaub ich geb das mit dem FB_Callmonitor hier auf und steige wieder auf Tasker und andFHEM um....   :'(
Danke trotzdem für die tolle Unterstützung mi.ke !!!
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

mi.ke


na, nu gib ma nich auf.....

Tasker und andFHEM sind toll, nutze ich auch. Aber via VPN von unterwegs.

und der Callmonitor funktioniert sehr gut (sogar via FHEM2FHEM), der ist auch nicht schuld.

Wenn, dann liegt es an uns Beiden (ich hab schlußendlich auch keine Ahnung, aber...bei mir läuft es)
Also gehen wir sportlich an die Sache ran und finden den Fehler....

Ausgangsbasis:

define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*
{
FBCallrpi(1,"**620",20,"192.xxx.xxx.xxx","meinFBPW");
}


Funktioniert denn?

define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.* set IRGENDEINELAMPE on


wenn ja....
Zitat von: schnun am 17 Februar 2014, 21:19:20
Folgendes über Telnet auf der Fritzbox Konsole lässt meine Telefone klingeln:

echo "ATP2 ATD**9" | nc 127.0.0.1 1011
sleep 15
echo "ATP2 ATH" | nc 127.0.0.1 1011

ist **620 Dein angeschlossenes Telefon  (DECT) ?
ATD**9" bedeuten ALLE Telefone, das hat bei mir auch nicht funktioniert)
Probier auch mal **1 -> FON 1 oder **2 -> FON 2  (bei mir ist DECT 612, klingelt aber an **1)

PS.
Vielleicht liegt der Fehler ja auch bei mir:
Ich hab den 99_myUtils.pm Code für Dich angepasst, da ich die Fritte mit USERNAME und PASSWORT fahre.
Aber versuch erstmal die o.g. Lösungsansätze

und nu komm.....ein bischen Ehrgeiz ! ! ! 8)
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

schnun

Okay, überredet  ;)

zu
Ausgangsbasis:

Code: [Auswählen]
define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*
{
FBCallrpi(1,"**620",20,"192.xxx.xxx.xxx","meinFBPW");
}

kommt nach speichern der FEHLER:
ERROR:
Usage: define  notify  Unknown command {, try help. Unknown command FBCallrpi(1,"**620",20,"192.xxx.x","meinFBPW"), try help. Unknown command }, try help.


Zu:

Funktioniert denn?

Code: [Auswählen]
define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.* set IRGENDEINELAMPE on


Ja, tadellos.


Zu:

Folgendes über Telnet auf der Fritzbox Konsole lässt meine Telefone klingeln:

echo "ATP2 ATD**9" | nc 127.0.0.1 1011
sleep 15
echo "ATP2 ATH" | nc 127.0.0.1 1011




ist **620 Dein angeschlossenes Telefon  (DECT) ?
ATD**9" bedeuten ALLE Telefone, das hat bei mir auch nicht funktioniert)
Probier auch mal **1 -> FON 1 oder **2 -> FON 2  (bei mir ist DECT 612, klingelt aber an **1)

Weder **1 noch **2 funktionieren. **620 ist mein Handy, habe ich  einfach mal als "Festnetz" in der FB angelegt. Geht auch nicht.
Nur bei allen, oder in dem Fall **9, das ringelts. DECT habe ich keines, habe noch "old style" Analog.
Ich habe nur das eine analoge Telefon angeschlossen.


Und ich gebe jetzt nicht auf....   >:(
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

mi.ke


Okay erst mal der ERROR
Versuch mal alles in eine Zeile zu schreiben


define kue_NordWestLuefterAlarm notify kue_NordWestLuefter:Ein.*{FBCallrpi(1,"**620",20,"192.xxx.xxx.xxx","meinFBPW")};


FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

schnun

Nachdem speichern kommt....

ERROR:
Usage: define  notify

Wenn ich nach ...Ein.* ein Leerzeichen lasse wird der Code akzeptiert, aber das Fon reagiert nicht.
Nochmal in der Konsole auf der FB getestet funktioniert auch **1, also nicht nur alle **9 .

Muss ich evtl. doch noch etwas in der 99_myUtilis oder .cfg auf der http://fritz.box:8083/fhem eintragen ?

In der Logfile meines Raspi-FHEM ist auch keinerlei Bewegung bzgl. Fritzbox, ausser die Statusanzeige "connected".
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

mi.ke

na also...

Teil 1 scheint ja schon mal zu funktionieren . . .
(bis auf mein copy'n'paste fehler - klar Leerzeichen muss sein)

jetzt mal auf Deinem Rpi in der FHEM Befehlszeile

{FBCallrpi(1,"**620",20,"192.xxx.xxx.xxx","meinFBPW")}


und / oder

{FBCallrpi(1,"**1",20,"192.xxx.xxx.xxx","meinFBPW")}


Den Teil, den Du unverändert in die 99_myUtils.pm eingetragen hast, baut eine Telnet Verbindung zu Deiner Fritte auf, und "schreibt" quasi automatisch für Dich die Befehle und "ergänz" dabei die Parameter aus der Zeile oben.

Also Telefonnummer, Klingelzeit, IP, Passwort.



FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

schnun

Und weiter geht's...

{FBCallrpi(1,"**1",20,"192.xxx.xxx.xxx","meinFBPW")}

eingegeben in der Befehlszeile bringt:

Undefined subroutine &main::FBCallrpi called at (eval 16) line 1.


Fon **620 habe ich gelöscht somit habe ich nur noch ein Fon (**1) an der Fritte.

Habe nochmals eine reload der 99_MyUtils gemacht und bekomme jetzt (auch nach save as...)

ERROR:
Undefined subroutine &main::MyUtils_Initialize called at fhem.pl line 1839.

Auch ein update fhem und shutdown restart bringt weiterhin diese Fehlermeldung.
Line 1839 befindet sich nach meiner Recherche in der fhem.pl "sub CommandReload($$)" und die Zeile
lautet: &{ "${fnname}_Initialize" }(\%hash);

Sagt Dir das was ? Kann das eine Fehlerquelle sein ? Kann ich sonst noch irgendwelche Infos liefern die weiterhelfen
könnten ?
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter