FB_WLANswitch und FBCall funktionieren seit 6.20-Update nicht mehr

Begonnen von schwepf, 17 September 2014, 12:01:42

Vorheriges Thema - Nächstes Thema

schwepf

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

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!

rudolfkoenig

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.

wmeiners

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
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

P.A.Trick

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!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Nikolaus

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
FHEM auf RASP, vormals FB 7490
(FS20 CUL)

wmeiners

@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
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

blueberry63

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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

blueberry63

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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

rudolfkoenig

#8
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 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.

blueberry63

@Rudolf

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

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

schwepf

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!!

wmeiners

Hallo Blueberry63,

es fehlte eine forward Deklaration der sub readFritzAccount, sorry.

Die nun angehängte Datei sollte laufen.

Liebe Grüße
Werner
FHEM auf Raspberry Pi 3
2x cul (FS20, Homematic)
USV Selbstbau

schnun

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
FHEM 5.7
FB 7362 SL
Raspberry Pi Model B
RFXTRX 433mhz
2 x HM-Lan-Adapter

schwepf

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

blueberry63

@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
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower