FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: schwepf am 17 September 2014, 12:01:42

Titel: FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schwepf am 17 September 2014, 12:01:42
Hallo zusammen,

auch ich habe (leider) das Update auf die neue FritzOS 6.20 gemacht. Seither kann ich mein Wlan nicht mehr wie gewohnt über fhem ein- und ausschalten. Auch funktioniert die Alarmbenachrichtigung auf meine Mobilnummer nicht mehr. Das Ganze scheint mit dem gekappten Befehl nc zusammenzuhängen, wie ich hier und da mal lesen konnte, z.B.:

http://forum.fhem.de/index.php/topic,26186.15.html (http://forum.fhem.de/index.php/topic,26186.15.html)

Nun scheint es aber Möglichkeiten, diese Funktionen ohne nc darzustellen. Für mich als Linux-Laien ist das aber ein großes bis sehr großes Problem... Vielleicht wäre es das Einfachste, wenn die Datei FritzBoxUtils.pm im unteren Bereich (FB_WLANswitch) umgeschrieben würde, so dass die FB-Funktionen auch ohne nc laufen? Gleiches gilt für die FritzBox Call Funktion aus der 99-myutils-Datei. Die poste ich hier einfach einmal, da ich nicht mehr weiß, aus welchem Wiki ich die herhabe:

####################################
# FritzBox Call ####################

sub FBCall($)
{
  my ($callnr) = @_;
  $callnr = "ATDT".$callnr."#";                         
  my $ret = "ATP3: " . `echo $callnr | nc 127.0.0.1 1011`;
  InternalTimer(gettimeofday()+30, "FritzBoxHangOn", "", 0);
  return
}

sub FritzBoxHangOn()
{
  my $ret = "ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
  $ret =~ s,[\r\n]*,,g; # remove CR from return-string
  return
}
1;

use FritzBoxUtils;



Danke und viele Grüße!
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: rudolfkoenig am 19 September 2014, 19:34:55
Habe in 99_Utils.pm ein fhemNc() gebaut, und  FritzBoxHangOn angepasst. Kommt ab morgen per update.

Man kann auf dem neuen OS (6.20) ein nc "nachinstallieren", indem man von einem alten OS (z.Bsp. 6.03) /bin/busybox nach /var/InternerSpeicher/fhem/nc kopiert.
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: wmeiners am 23 September 2014, 14:18:10
Hi zusammen!

Ich habe meine alte 99_myFritzboxUtils.pm an die fw 6.20 mit "ctlmgr_ctl w telcfg command/..." angepasst.

Klappt prima auf meiner 7390.

Die Verbindung wird von meinem FHEM-RPI über telnet zur FB hergestellt.

Ich hänge die Datei an. Wer mag, kann sie verwenden.

Liebe Grüße
Werner
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: P.A.Trick am 25 September 2014, 22:12:25
Zitat von: wmeiners am 23 September 2014, 14:18:10
Hi zusammen!

Ich habe meine alte 99_myFritzboxUtils.pm an die fw 6.20 mit "ctlmgr_ctl w telcfg command/..." angepasst.

Klappt prima auf meiner 7390.

Die Verbindung wird von meinem FHEM-RPI über telnet zur FB hergestellt.

Ich hänge die Datei an. Wer mag, kann sie verwenden.

Liebe Grüße
Werner

Du solltest vielleicht noch reinschreiben, dass die libnet-telnet-perl benötigt wird!
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: Nikolaus am 26 September 2014, 11:19:56
Hallo zusammen,

Da ich relativ neu in der Materie bin, freue ich mich besonders über fertige Lösungen.
Vielen Dank für die Datei.
bei mir musste ich nur in dem Script folgende Zeile ändern:
   if (@account < 4){
     Log 1, $func." error: not enough parameter! Need 3 Lines (fritz-domain, fritz-user, fritz-pw)";

Aus der 4 musste ich eine 3 machen, da auch nur 3 Zeilen in der .conf vorhanden sind, sonst bricht das Script ab - oder?
Danach hat es wieder an der "Tür" geklingelt ;D

Liebe Grüße
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: wmeiners am 26 September 2014, 14:03:26
@Nikolaus:
ich hänge die modifizierte Datei an. Bei mir fiel es nicht auf, da ich ein LF am Ende der 3. Zeile hatte und somit eigentlich 4 Zeilen hatte ;-)
Danke für den Hinweis.

@P.A.Trick:
Danke für die Info. Das hatte ich gar nicht mehr auf dem Schirm, dass die libnet-telnet-perl erforderlich ist. Aber man kann ja nicht an alles denken bzw. beschreiben.

Liebe Grüße und schönes Wochenende
Werner
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: blueberry63 am 06 November 2014, 11:44:46
Hallo Werner,

zuerst mal vielen Dank fuer Deine Lösung - wenn sie bei mir mal funktioniert. Ich bekommen nämlich folgende Fehlermeldung im LOG:

2014.11.06 11:27:50 1: reload: Error:Modul 99_myFritzboxUtils deactivated:
Bareword "readFritzAccount" not allowed while "strict subs" in use at ./FHEM/99_myFritzboxUtils.pm line 29.


Hast Du eine Idee, was bei mir schief läuft?

Gruß
Blueberry63
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: blueberry63 am 06 November 2014, 12:51:34
Hallo Rudolf,

ZitatHabe in 99_Utils.pm ein fhemNc() gebaut, und  FritzBoxHangOn angepasst. Kommt ab morgen per update.

ich würde auch gerne "fhemNC" ausprobieren, mir ist aber nicht klar, ob ich einfach nur "nc" in imeiner Funktion ersetzten muß und wie die Syntax aussieht. Hier meine aktuelle Funktion, um von "remote" (FHEM läuft nicht auf der FB!) einen Anruf auszulösen:


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


Müßte die FETT markierte Zeile nun SO aussehen:

[b]$telnet->print('echo "ATP'.$Fon.'2 ATD**'.$CallNr.'" | fhemNC ("127.0.0.1:1011","",""');[/b]


Gruß
Blueberry63
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: rudolfkoenig am 06 November 2014, 13:12:48
Dein Vorschlag funktioniert so natuerlich nicht, weil fhemNc eine FHEM-Funktion ist, und kein Befehl, was man in der telnet-Verbindung ausfuehren koennte. fhemNc ist fuer FHEM@FritzBox gedacht, du kommst aber hier von einem anderen FHEM-Rechner. Abgesehen davon passt die Klammerung nicht, und die Parameter werden nicht ueber STDIN gelesen. Siehe auch 99_Utils.pm: fhemNc("ip:port", "text", waitForReturn);

MAn die einfachste Loesung ist busybox (http://fhem.de/fb7390/busybox.6.03) von einem 6.03-er FritzBox auf dem neuen FB nach /var/InternerSpeicher/nc zu kopieren, und in deinem alten Programm nc durch /var/InternerSpeicher/nc zu ersetzen.
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: blueberry63 am 06 November 2014, 19:02:44
@Rudolf

Danke für Busybox-Link  :)  - das ist wirklich die einfachste Lösung: jetzt funktioniert alles wieder!

Gruß
Blueberry63
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schwepf am 07 November 2014, 11:18:50
Der Erfolg von blueberry63 hat mich ermutigt.
Busybox habe ich rüberkopiert (Danke @Rudolf),  und in der 99-myutils den Pfad für das nc angepasst. Nun erhalte ich aber folgende Fehlermeldung, wenn ich ein {FBCall('**701')} mache:

# sh: /var/InternerSpeicher/nc: Permission denied

manchmal gefolgt von:

sh[1411]: ++++do set_modulemen++++

Dann habe ich die User/Gruppen- und Nutzerrechte geprüft und mit chown und chmod geändert. Läuft nun alles unter root und für die busybox sind folgende Rechte eingetragen; -rwxrwxrwx  Der Fehler bleibt.

Was kann ich noch versuchen? Muss ich noch irgendwo Rechte anpassen??

(Neustart von fhem und FB haben auch nichts gebracht).

Danke vorab!!
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: wmeiners am 07 November 2014, 14:49:21
Hallo Blueberry63,

es fehlte eine forward Deklaration der sub readFritzAccount, sorry.

Die nun angehängte Datei sollte laufen.

Liebe Grüße
Werner
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schnun am 08 November 2014, 23:23:29
Guten Abend !

Ich konnte gestern plötzlich keine VPN Verbindung über andFHEM mehr herstellen. Da ich andFHEM und den Raspberry ausschliessen
konnte musste es an meiner FB7362SL liegen. Dachte ich mir mach ich ein update. Gut, VPN funktionierte dann wieder, aber
auch bei mir kommt kein Anfruf mehr von der FB bei gewissen Sensoren, z.B. wenn Haustüre bei Nacht offen.

Auf Anhieb diese Beiträge hier gefunden und habe das "Modell" von Werner angewendet.

Leider klappt es nicht. Telnet zur FB steht, ist in FHEM auf connected, aber bekomme lt. log folgendes mitgeteilt:

2014.11.08 23:06:47 3: fl_HaustuereAufNacht return value: Undefined subroutine &main::FBCallr called at (eval 33) line 6.


Kann mir jemand weiterhelfen ? Kann ich sonst noch Daten bereitstellen die evtl. weiterhelfen ?

Vorab Danke.

Gruss
Patrick
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schwepf am 12 November 2014, 09:10:56
Bei mir geht FBCall nun wieder. Es lag wohl nicht (oder nicht nur) an den Permissions, sondern eher an dem Pfad, den es ja galt in der 99_Myutils anzupassen. Wenn ich die busybox in den Ordner  /var/InternerSpeicher/nc kopiere, dann ist der richtige Pfad für das Ausführen des nc:

/var/InternerSpeicher/nc/busybox nc

Ich warte nun noch, ob schnun geholfen werden kann, und setze den Thread danach auf "gelöst".

VG
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: blueberry63 am 12 November 2014, 09:16:17
@Schwepf,

ich habe die Binary-Datei "busybox" in "nc" umbenannt und nach "/var/InternerSpeicher/" kopiert (plus die entsprechenden Permissions gesetzt). Dann ist der Aufruf in "99_MyUtils.pm":

/var/InternerSpeicher/nc

Gruß
Blueberry63
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schnun am 12 November 2014, 12:46:20
Ich habe wieder OS 06.03 aufgespielt und mein VPN Problem in den Griff
bekommen, läuft bis dato wieder alles perfekt.

Danke euch trotzdem für die Hilfe !

Gruss
schnun
Titel: [gelöst] Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: schwepf am 12 November 2014, 12:55:27
Dann sind ja alle zufrieden...   :) :) :)
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: Gunther am 21 Dezember 2014, 03:04:14
Ich versuche auf meiner FritzBox 7390 das WLAN zu schalten.

Meine Haupt-FHEM-Installation ist auf einem RPI.
Nachdem ich an fhem2fhem zum WLAN-Schalten gescheitert bin, habe ich Euren Thread gefunden.
Leider komme ich noch nicht zurecht.

Könnt Ihr mir bitte helfen:
1.) Wo muss libnet-telnet-perl installiert werden?
2.) Was ist die 99_myFritzboxUtils.pm und wie unterscheidet sich diese von der in FHEM enthaltenen FritzboxUtils.pm? Existieren bei Eurer Lösung beide parallel?
3.) Muss die 99_myFritzboxUtils.pm auf den RPI?
4.) ich merke gerade, dass ich soviele Fragen habe... und freue mich über eine kurze Anleitung.
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: tagedieb am 21 Dezember 2014, 08:47:14
Guten morgen Gunther

1.telnet muss auf dem Raspi installiert werden
2. einfach mal vergleichen  ;D
3.auf den Raspi

ich wünsche einen schönen advent

lg tagedieb
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: Gigafix am 21 Dezember 2014, 11:08:37
Hallo Gunter

Hast Du Dir schon mal das neue FritzBox-Modul angesehen?
http://forum.fhem.de/index.php/topic,29725.0.html (http://forum.fhem.de/index.php/topic,29725.0.html)
Schau einfach mal drüber, damit lässt sich WLAN sehr einfach schalten....
...Telnet wird aber auch benötigt. Du benötigst aber kein FHEM auf der FritzBox.

Viele Grüße
Gigafix
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: Gunther am 21 Dezember 2014, 12:50:35
Danke Euch beiden.

@ Gigafix: Das sind ja tolle Nachrichten! Ich schaue mir das direkt mal an!
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: Heiner am 21 März 2015, 19:58:59
Hi, ich schaffe es nicht.

Ich hab die letzte 99_myFritzboxUtils.pm geladen und nach Anleitung am ende vorgegangen.

zum Aufruf verwende ich: {FBCallNr("**612",3,111)} wenn ich auch nicht genau weiss wofür die 111 steht.

Es passiert aber nix, auch kein Logeintrag.

Was mache ich falsch?
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: wmeiners am 22 März 2015, 12:27:55
Hallo Heiner,

du musst alle Parameter in Hochkomma (" oder ') einschließen.
Also:  {FBCallNr("**612", "3", "111")}   
Der 1. Parameter (muss angegeben werden, logisch) ist die Zielrufnummer, in deinem Fall die 2. Internnummer.
Der 2. Parameter (kann angegeben werden, sonst sind es 20 sec) gibt die Rufdauer in sec an, da sind 3 sec schon etwas kurz!
Der 3. Parameter (kann) gibt die Line (also die abgehende Rufnummer) an. Du findest den Parameter auf der Fritzbox
unter: Telefonie/Eigene Rufnummern: Vorauswahl (z.B. *111# oder *121# für Line1).

Probiere doch einfach mal: {FBCallNr("**612")}

Liebe Grüße
Werner
Titel: Antw:FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr
Beitrag von: wmeiners am 21 August 2015, 08:59:36
Moin zusammen.

Da Telnet ab der Version 6.30 nicht mehr läuft, funktioniert auch die 99_ myFritzboxUtils.pm nicht mehr.
Daher habe ich ein neues FB_SIP.pm Modul erstellt. Das funktioniert ohne Telnet wunderbar.

Ich habe es unter Hardware/Fritzbox als neues Thema "FB_SIP" eingestellt.

Wer einen Anruf von FHEM ausführen möchte, ist mit dem SIP-Modul dazu in der Lage, besser als vorher.

Ich hoffe das SIP-Protokoll bleibt in der Fritzbox erhalten.

Liebe Grüße
Werner