FHEM Home Automation 7270

Ausgangssituation:
- FritzBox 7270
- Firmware: 54.04.80
- FHEM: fhem45-on-fritzbox.tgz
Hast Du inzwischen eine Lösung gefunden?

Hallo zusammen,

seit einiger Zeit suche ich auch schon eine Möglichkeit FHEM auf meiner FritzBox 7270 zu installieren, die Voraussetzungen sind die gleichen wie oben beschrieben, nur habe ich aufgrund meines Infoframes noch Freetz am laufen. Leider bin ich da noch viel zu weit weg, soll heißen ich bekomme noch nicht mal eine hier beschriebene Fehlermeldung. Kann vielleicht jemand noch eine Schritt-für-Schritt-Anleitung für nicht ganz so Hardcore-Fritzler wie mich zusammenbasteln? Das wäre echt ein Traum. Vielen Dank!

Gruß
Hoobert
 
Hallo marte,

dort ist aber eigentlich nur die Beschreibung für die FB 7170 angegeben. Funktioniert die Anleitung denn auch für die 7270?

Gruß
Hoobert
 
Nein.

liefert den oben beschriebenen Fehler: can't resolve symbol 'gcvt'

Ich bin auch gerade dran, meinen FHEM-Server auf meine Fritzbox 7270 zu portieren.
Arbeite allerdings mit der Trunk-Version, weil ich bei der 04.88er Firmware bleiben möchte.

Ich bin so vorgegangen, wie auf der vorigen Seite geschildert - allerdings bisher nur mit Teilerfolgen. Eine "Dummy-Funktion" gcvt habe ich gebaut und die entsprechende Library auch eingebunden - vorerst aber endet der Start von fhem jetzt mit einer Fehlermeldung im Log:

usage: $sock->socket(DOMAIN, TYPE, PROTOCOL) at fhem.pl line 1439

Muss ich noch weiter forschen ...
 
Zuletzt bearbeitet:
OK, next step: Offenbar wurde irgendwann nach Version 5.6.2. von Perl (die sollte ein paar Jahre auf dem Buckel haben ....) der Konstruktor für Sockets geändert. In der Datei perl/lib/perl5/5.6.2/io/Socket/INET.pm
steht der Aufruf als

$sock = IO::Socket::INET->new(Listen => 5,
LocalAddr => 'localhost',
LocalPort => 9000,
Proto => 'tcp');

In der fhem.pl hingegen wird benutzt

my $server2 = IO::Socket::INET->new(
Proto => 'tcp',
LocalHost => ($global ? undef : "localhost"),
LocalPort => $port,
Listen => 10);
ReuseAddr => 1);

Ein einfaches Ändern LocalHost -> LocalAddr ändert nichts am Fehler - offenbar liefert das compilierte perl 5.6.2 dennoch den falschen Aufruf der socket-Funktion.

Offenbar weiter gehende Sache, sinnvollerweise sollte man auf ein statisch gelinktes perl ausweichen.
 
Hi phenning,

das hört sich ja alles nicht so gut an. Meinst Du, Du bekommst fhem auf der 7270 zum laufen, oder bleibt nur ein Wechsel auf die 7390 oder 7170?

Gruß
Hoobert
 
Gute Frage.

Ist aber eine reine Zeitfrage, denn ganz zufällig bin ich Professor für Informatik und kann im Zweifelsfall auch meine Studenten mit einsetzen...

Mit anderen Worten: Ich bin ganz zuversichtlich.

Gruß

pah
 
Hi,
er13 hatte hier beschrieben, dass man diese Fehler durch Neukompilierung der uClibc mit der Option UCLIBC_SUSV3_LEGACY wegbekommt.
Kann man das nicht im Trunk wieder einbauen?
Im stable geht es ja auch oder hat das zuviele (mir unbekannte) Nebenwirkungen?
Gruss,
Wolle

edit:

Alternativ: hat mal jemand versucht das Perl aus der AVM Firmware zu extrahieren? Ich hab leider keine Ahnung was man da alles braucht das .../lib/perl5/ und das perl binary oder noch mehr (vermutlich libs aber welche)?
 
Zuletzt bearbeitet:
Du kannst dir jederzeit eine eigene Toolchain mit dieser Option bauen. Im menuconfig "Build Toolchain" auswählen, dann make uclibc-menuconfig (Option einstellen). make und 2h warten...

Gruß
Oliver

edit: Das AVM Perl ist für die 7390, das wird dir auf den anderen Boxen nicht viel helfen.
 
Das tar-Archiv, das man hier herunterladen kann.

Gruß
Oliver
 
Na hurra, FHEM läuft auf der 7270.

Was habe ich getan ?
1. Trunk-Version von freetz, darin wie oben durch olistudent beschrieben die uclibc neu übersetzt (dauert bei mir aber keine 2 Stunden...)
2. perl 5.6.2 (war compiliert für 7170) und FHEM 5.0 auf einem Stick installiert
3. fhem.pl muss noch angepasst werden - das Perl-Modul zum Signal-Handling funktioniert noch nicht, fhem kann also nicht ordentlich terminiert werden. Das ist aber für den Betrieb irrelevant - möglicherweise muss ich da im perl-Code noch mehr anpassen.

=> fhem Webserver läuft !!!

was bisher noch NICHT geht, ist der CUL. das Kernelmodul usbserial.ko wird zwar geladen - doch wird kein entsprechendes Device erzeugt. Weiß hier jemand, wohin freetz die Kernelmessages umleitet ?
 
Das liegt nicht an Freetz. AVM leitet die Messages um. Wenn man das aktiviert gibt es jedoch Probleme mit den DECT-Telefonen (echo STD_PRINTK > /dev/debug).

Gruß
Oliver
 
Möglicherweise läuft das Perl besser, wenn Du ein passendes zur verwendeten C-Library erstellst und nicht die Version nimmst, die Du für die 7170 erstellt hattest.
 
Heureka, (nahezu) volle Funktionalität hergestellt: FHEM auf Fritzbox 7270 mit freetz (trunk-Version).

CUL lief nicht sauber mit usbserial.ko - man benötigt das Kernelmodul cdc-acm.ko (eigentlich für Modems gedacht). Das habe ich noch übersetzen müssen, dann von Hand auf die Box kopiert und gestartet


Bisher noch ziemlich viel Handarbeit - aber ich werde eine ordentliche Anleitung verfassen und posten.

Wahrscheinlich muss ich auch noch ein Perl-Modul nachschieben - denn das Editieren der Konfigurationsfiles innerhalb von FHEM scheitert noch daran, dass die Kompressionsbibliothek zlib nicht geladen werden kann.
Das ist aber für den Betrieb irrelevant.

Edit, 18.April 2011:

Leider imme rnoch nicht dazu gekommen, eine ordentliche Anleitung zu verfassen. Anbei ein Link auf eine SEHR summarische Kurzanleitung.
http://medialab-karlsruhe.dyndns.or...7270&catid=64:solaranlagen&Itemid=143&lang=de

Grund für meinen Zeitmangel: Ich stecke die wenige freie Zeit im Moment lieber in die Entwicklung eines Solar-Datenloggers für FHEM, siehe hier: http://www.photovoltaikforum.com/viewtopic.php?f=5&t=61572

Edit, 26.April 2011:

Anbei der erste Screenshot des neuen Moduls für die Überwachung meiner Fotovoltaikanlage. Jetzt nicht nur mit Fake-Daten, sondern LIVE vom echten Gerät ...

2011-04-26b.jpg


Gestartet um 14:00, nochmal abgenommen um 15:36 bis ca. 16:16.

Offene Punkte noch:

1. Der erste Plot ist zu kompliziert. Momentane Leistung und laufender Tagesertrag, Gleichspannung, Temperatur und solare Einstrahlung in einem Diagramm sind einfach zu viel. Da ich in dem SVG-Modul schon diverse Änderungen angebracht habe, werde ich diese Kurven einfach durch Mausklick anzeigbar machen (diese Interaktivität ist eben einer der Vorteilevon SVG, sage ich meinen Studenten immer ...)

2. Der solare Inverter (NT 5000 von Sunways) kommuniziert wunderbar mit einem FHEM-Server auf einem meiner PC's. Aber auf der Fritzbox muckt das entsprechende Kernelmodul (pl2303 für einen Seriell-to-USB Konverter) noch herum
 
Zuletzt bearbeitet:
Heureka, (nahezu) volle Funktionalität hergestellt: FHEM auf Fritzbox 7270 mit freetz (trunk-Version).
Hallo phenning,
Du bist der Größte!

Bisher noch ziemlich viel Handarbeit - aber ich werde eine ordentliche Anleitung verfassen und posten.
Leider kann ich es momentan nicht ausprobieren, da mein Laptop beim reparieren ist. Sobald ich es aber wieder habe werde ich loslegen und dich sofort "belästigen" wenn ich mit der Kurzanleitung nicht zurecht komme.;)

Ich bin schon mehr als gespannt.

Gruß
Hoobert
 
Hallo zusammen, nachdem ich nun seit einer Woche völlig am verzweifeln bin hier was ich gemacht, versucht habe:

1. Installation nach http://fhem.de/fritzbox.html oben und unten probiert
2. Installation nach http://medialab-karlsruhe.dyndns.or...7270&catid=64:solaranlagen&Itemid=143&lang=de
3. im chroot

Versuche 1 und 2 endeten immer im "can't resolve symbol 'gcvt'" bzw. zunächst beim nicht gefundenen IO ein symlink behebt dieses Problem von io nach IO im libs Verzeichnis.
Bei Anleitung 2 bekomme ich zumindest mit screen /dev/ttyACM0 und V die CUL-Version zurückgegeben... im chroot kann ich auf das device nicht zugreifen... warum?

Versuch 3 endet im Logeintrag: Can't open server port at XXXX (Beliebigen Port einsetzen): Invalid argument

Des weiteren habe ich das Image mit diversen Einstellungen re und re und recompiliert

meine .config siehe Anhang

Versuche wurden sowohl mit stable, trunk, labor und was ich sonst noch finden konnte gemacht.

Hilfe? *g*

Liebe Grüße RB


Update: Mitlerweile hat olistudent eine perl version zusammengebaut, die zumindest fhem starten lässt :

siehe hier

Was nicht funktioniert:
SerialPort.pm gibts (noch) nicht? D.h. fhem und der webserver laufen zwar aber man kann das CUL nicht laden.
 

Anhänge

  • dotconfig.txt
    4.5 KB · Aufrufe: 15
Zuletzt bearbeitet:
So, bei mir läuft jetzt alles zufriedenstellend.

Ich finde in Deiner .config keine Auffälligkeiten.

Das mit dem gcvt ist eindeutig ein uclibc-Problem und sollte durch die Anleitung auf meinem Laborserver gelöst werden
Ich hatte zum Schlus snoch damit zu kämpfen, dass die Kommunikation via USB-Seriell-Konverter mit meinem solaren Inverter nicht korrekt lief (Hardware-problem des USB-Extenders).
 
Hallo,
danke für die Hilfe. Ich habe es jetzt auch laufen. Eine vorläufige Anleitung gibt es hier. Werde diese am Wochenende vervollständigen. Unter anderem wird da auf phennings Homepage verwiesen.

In Zusammenarbeit mit olistudent und hippie2000 wurde Perl 5.10 aus dem OpenWRT soweit portiert, dass es läuft.

Das fehlende USB-Modul (SerialPort - Perl) wurde umgangen mit Ser2Net.

LG Royalblue
 
Zuletzt bearbeitet:
Bitte keine unnötigen Vollzitate!

Schön, dass es läuft.

Gruß
Oliver
 
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.