Hallo, nachdem ich im Forum nicht gefunden habe, stelle ich die Frage einfach einmal hier.
Ich arbeite momentan mit der Eltako FVS Software, welche leider so einige "Problemchen" hat, oder ich mit ihr.
Deswegen möchte ich gerne auf fhem umsteigen. Habe auch schon die Software zum Laufen gebracht. Allerdings wird mein FAM-USB, wie es bei Eltako heißt, nicht erkannt.
Jetzt habe ich schon alle möglichen TCM defined, allerdings ohne Erfolg.
Kann ich dieses "FAM-USB" überhaupt mit fhem verwenden?
Wenn ich richtig gelesen habe, sollte fhem doch das angeschlossene USB-Device automatisch erkennen. Tut es aber nicht. Habe es auch schon an unterschiedlichen USB-Ports versucht.
Habe es auch schon mit diesen Befehlen in der fhem.cfg versucht:
define BscBor TCM 120 /dev/ttyACM0@9600
define TCM310 TCM 310 /dev/ttyACM0@57600
Auch kein Erfolg. Außer, dass beide dann unter Everything angezeigt werden. Beide sind aber disconnected.
Kann mir jemand ein paar hilfreiche Tipps geben, wie ich dieses "FAM-USB" zum Laufen bekomme?
Danke schon einmal im Voraus.
Ach ja, ich verwende die fhem Version 5.5. Habe auch ein Update gemacht. Das hat alles geklappt.
Laut http://forum.fhem.de/index.php?t=rview&goto=92148 (//forum.fhem.de/index.php?t=rview&goto=92148) sollte FAM-USB funktionieren.
Ich vermute Du hast nicht die benoetigten USB-Treiber installiert.
Nein, ich weiss nicht, welche benotigt werden, ich habe kein FAM-USB.
Danke für die schnelle Antwort.
Obwohl ich gestern schon den USB-Treiber für das FAM USB installiert habe, hab ich jetzt aufgrund deiner Antwort noch einmal den Treiber deinstalliert und den Treiber, den ich mir von der Eltako-Homepage runter gezogen habe, installiert.
Dann habe ich auch nochmals die win32::serialport.pm und die commonport.pm installiert.
In die fhem.cfg habe ich dann noch folgende Zeilen eingefügt:
define TCM120_1 TCM 120 /dev/ttyUSB1@9600
define BscBor TCM 120 /dev/ttyACM0@9600
define TCM310 TCM 310 /dev/ttyACM0@57600
Alle drei, da ich ja nicht weiß, welche Variante sich in dem FAM-USB befindet.
Leider erkennt fhem mein FAM USB immer noch nicht.
Irgend jemand noch eine Idee?
Danke im Voraus.
> win32::serialport.pm
Windows? Dann muss es irgendwie als COM: Port eingerichtet werden, und das statt /dev/ttyACM0 verwendet werden. Am besten einen mit Windows-Ahnung Fragen.
Gut, dann stelle ich hier mal die ursprüngliche Frage an alle User mit Windows-Ahnung:
Wie muss ich die fhem.cfg konfigurieren, damit ich das FAM-USB von Eltako auf einem Win7-Rechner mit fhem ansprechen kann?
define ?????
Bei meiner versuchsweisen Definition:
define TCM120_1 TCM 120 /dev/ttyUSB1@9600
erscheint folgende Fehlermeldung:
Das System kann den angegebenen Pfad nicht finden
can#t open device /dev/ttyUSB1
at .FHEM/DEVIO.pm at line 188
Irgend jemand eine Idee woran das liegen kann? Fehlt da eine Pfadangabe?
Vielen Dank im Voraus!
Moin Rainer,
obs wirklich hilft, weiß ich nicht, aber aus meinen Anfängen mit FHEM, Windows und OWX folgender Lösungsvorschlag:
Es sollte im Modul am Anfang
use Win32::SerialPort stehen, und das Perl-Modul win32::serialPort muss auch installiert sein, ggf. muß das Modul analog zu 00_OWX.pm angepasst werden
http://forum.fhem.de/index.php/topic,8367.msg43685.html#msg43685
Der Aufruf wäre dann:
define TCM120_1 TCM 120 /com/1@9600 # Anpassen auf den richtigen com-Port.
Gruß Joachim
Edith: Falschen Link korrigiert
Hallo Joachim,
zunächst vielen Dank für Deine schnelle Antwort.
Natürlich habe ich das sofort ausprobiert.
Allerdings konnte ich die zweite Änderung nicht einarbeiten. Ich habe den Eintrag in der 00_TCM.pm nicht gefunden, den ich ändern soll.
Mit der einen Änderung diese Fehlermeldung:
Das System kann den angegebenen Pfad nicht finden
can#t open com/10
at .FHEM/DEVIO.pm at line 188
(COM10, da auf der FVS-Software das FAM-USB auf Com 10 läuft)
Ich habe dann alle erdenklichen Schreibweisen ausprobiert. Habe die Datei SerialPort.pm auch in mehrere Verzeichnisse kopiert.
Aber keine Chance.
Momentan weiß ich nicht mehr weiter.
Ich scheue mich noch davor, mir einen Raspberry Pi zu kaufen, da die Eltako Hard- und Software schon genug gekostet hat.
Hast Du noch eine Idee? Oder irgend ein anderer User?
Gruß
Rainer
Moin Rainer,
da ich selber kein Eltacko habe, und ich mittlerweile kein Windows mehr nutze, kann ich nur versuchen meine alten Kenntnisse auszugraben, Außerdem ist mein Perl grottenschlecht.
Gib mal bitte ein bisschen mehr von Deine Konfiguration preis.
Betriebssysten (Win XP; Win7; Win8)
Welches Perl (Active Perl; Strawberry Perl; Cygwin)
und weitere wichtige Informationen. Am besten in der Signatur.
ZitatIch habe den Eintrag in der 00_TCM.pm nicht gefunden, den ich ändern soll.
Das ist nicht ein Eintrag, sondern hier muss mehr gemacht werden. Die 00_TCM.pm muss umgearbeitet werden, denn der Autor hat Windows nicht wirklich vergesehen.
Zitatsub
TCM_Initialize($)
{
my ($hash) = @_;
#require "$attr{global}{modpath}/FHEM/DevIo.pm"; # originaleintrag
require "$attr{global}{modpath}/FHEM/Win32::SerialPort"; # änderung
eventuell klappt das schon, ansonsten schoneinmal über eine virtuelle Maschine nachgedacht?
Gruß Joachim
Hallo Joachim,
vielen Dank schon einmal für Deine Geduld mit mir und meinen Problemen.
Habe jetzt die 00-TCM.pm gemäß Deinen Vorschlägen umgeändert.
Nun bekomme ich wenn FHEM läuft folgende Meldung (direkt unterhalb der Eingabezeile in FHEM)
Unknown command use, try help. Cannot load module TCM
Nein, über eine virtuelle Maschine habe ich noch nicht nachgedacht. Um ehrlich zu sein, ich weiß nicht was das in Zusammenhang mit Hausautomation ist. Muss ich erst mal ein wenig "googlen". Ich möchte Dich ja nicht überstrapazieren. ;-)
Gruß
Rainer
Moin Rainer,
die Fragen sind noch nicht beantwortet:
ZitatGib mal bitte ein bisschen mehr von Deine Konfiguration preis.
Betriebssysten (Win XP; Win7; Win8)
Welches Perl (Active Perl; Strawberry Perl; Cygwin)
und weitere wichtige Informationen. Am besten in der Signatur.
und Information über Deine Perl-Wissen/Linux-Kenntnisse.
Virtuelle Maschine: http://de.wikipedia.org/wiki/Hypervisor
Läuft auf Deinem Windows als Gastsystem
Stellt nahezu alle Linuxfunktionalitäten bereit.
Und keine Angst, ich melde mich einfach nicht mehr, wenn ich überstrapaziert werde.
Gruß Joachim
Hallo Joachim,
habe meine Konfiguration in die Signatur.
Aber gerne hier noch mal:
Konfiguration:
- Win7
- ActivePerl
- komplette Hausinstallation von Eltako (EnOcean)
Meine Kenntnisse von Perl bzw. Linux sind eher gering. Habe zwar eine gewisse Affinität zur Elektronik und Computer, aber mit Perl und Linux hatte ich bisher nichts am Hut. Bin auf der Suche nach Alternativen zur Automationssoftware von Eltako auf FHEM gestoßen. Scheint mir das flexibelste System zu sein.
Im Anhang übrigens ein Bild von dem, was ich von Eltako alles daheim rumstehen hab und womit ich absolut unzufrieden bin. Wenn ich das nicht schon hätte, würde ich mir (glaube ich) ein Raspberry kaufen.
Solltest Du noch weitere Fragen haben oder Empfehlungen, nur raus damit.
Gruß
Rainer
So Rainer,
versuche mal die angehängte 00_TCM.pm.
mit folgender Definition:
define TCM120_1 TCM 120 com10@9600
wenns läuft, alles gut, dann Zeile 77 Log 1, "logausgabe Devicename $a[3]"; auskommentieren, sonst das fhem.log mitschicken.
Gruß Joachim
Hallo Joachim,
Bingo!
Habe Deine Anweisungen befolgt und es läuft.
Das TCM hat schon die ersten Signale empfangen. Aktuell wurden schon 13 Sensoren gefunden, ohne das auch nur ein Schalter gedrückt wurde.
Da muss ich mich jetzt erst mal weiter belesen, wie es jetzt weiter geht.
Dir möchte ich meinen besonderen Dank aussprechen.
Sollten wir das Ergebnis eventuell ins FHEM-Wiki stellen? Du bist schon länger dabei, macht das Sinn? Wenn ja, soll das nicht heißen, dass Du das machen sollst. Ich sehe das dann schon bei mir, damit ich der FHEM-Gemeinde auch etwas zurück geben kann.
Also, noch einmal vielen Dank. Du hast was gut bei mir.
Gruß
Rainer
Bitte ein Wiki zu dem Thema erstellen.
Ich kann das Modul 00_TCM ergänzen und einchecken. Die Zeile
use Win32::SerialPort;
führt aber bei Linux-Systemen zu Fehlermeldungen, da die Modul dort nicht vorhanden ist; jedenfalls auf einer FRITZ!box 7390 ist das ohne weiteres nicht lauffähig.
Moin Rainer,
super, dass es rennt.
Dann kann ich jetzt das ganze so umarbeiten, dass es unter Linux und Windows rennt, und dem Modulautor den entsprechenden Patch zukommen lassen.
@ Klaus:
Wenn Du das 00_TCM ergänzen kannst, das wäre super.
Die Ergänzung müsste in Zeile 21 sein, und zwar:
if( $^O =~ /Win/ ) {
require Win32::SerialPort;
} else {
require Device::SerialPort;
}
ist jetzt zwar aus der Hüfte geschossen und muß getestet werden.
Bein Wiki würde ich mich gerne heraushalten.
Ich glaube es reicht, wenn in der commandref folgendes stehen würde:
Define
define <name> TCM [120|310] <device>
First you have to specify the type of the EnOcean Transceiver Chip, i.e either 120 for the TCM120 or 310 for the TCM310.
device can take the same parameters (@baudrate, @directio, TCP/IP, none) like the CUL, but you probably have to specify the baudrate: the TCM120 should be opened with 9600 Baud, the TCM310 with 57600 baud.
Example:
define BscBor TCM 120 /dev/ttyACM0@9600
define TCM310 TCM 310 /dev/ttyACM0@57600
define TCM310 TCM 310 com1@57600 # bei Windows BS
Gruß Joachim
Das ergänzte 00_TCM steht jetzt zur Verfügung. Lauffähig unter Linux FRITZ!box 7390. Bitte unter Windows testen.
Danke Klaus,
Rainer, testest Du das bitte nocheinmal aus?
Gruß Joachim
Wenn Ihr mir sagt, wo ich die geänderte Datei finde gerne.
Einfach ab ca. 7:45 ein update machen.
Update durchgeführt.
Unter Windows zunächst folgende Fehlermeldung:
Use of uninitialized $InBytes in numeric gt <>> at ./FHEM/00_TCM.pm line 496
Error in PurgeComm at C:\FHE.pl line 0.
Error in GetCommTimeouts at C:\FHEM\fhem.pl line 0.
Error closing Write Event handle 268 for \\.\com10
Das Handle ist ungültig.
Danach FHEM gestartet. Ohne Fehlermeldung, TCM erkannt und Signale werden empfangen.
Nach erneutem Shutdown keine (Windows-) Fehlermeldung mehr.
Nach Neustart keine Fehlermeldung, TCM erkannt und Signale werden empfangen.
Nachtrag gelöscht. Fehler lag zwischen den Kopfhörern!
Gruß
Rainer
Koennt Ihr mir nochmal erklaeren, wieso in 00_TCM.pm ein "require *::SerialPort" notwendig ist?
Eigentlich verwendet TCM die DevIo Routinen, und hier werden die *::SerialPort Module geladen, und das haette ich auch gerne weiterhin nur in diesem Modul, damit nicht jeder Modulautor damit anfangen muss.
Moin Rudi,
erklären kann ich Dir das nicht, aber ich befürchte, dass in der DevIO seit mindestens August 2012 ein Fehler drin ist, und der Aufruf in der DevIO nicht hinhaut.
Im August 2012 hatte ich das gleiche Proplem mit OWX.
http://forum.fhem.de/index.php/topic,8367.msg43685.html#msg43685
Leider habe ich mittlerweile kein Windows Testsystem mehr um zu suchen, was in der DevIO nicht hinhaut, aber, wenn es nicht auf ein paar Tage ankommt, kann ich mir wieder eins bauen, und suchen.
Du hast recht, dass es sinnvoller ist, diese Routine in der DevIO zu halten.
Gruß Joachim
Hallo,
also mit der angehängten 00-TCM.pm habe ich auch Zugriff auf mein FAM-USB. Da habe ich sogar das use Windows::SerialPort rausgemarkt.
Wenn ihr noch etwas zum Ausprobieren habt, dann mache ich das gerne. Allerdings müsst ihr mir genau sagen, was ich zu tun habe oder die entsprechende Datei mitschicken.
Viele Grüße
Rainer
Moin Rainer,
kommentiere mal in der aktuellen FHEM Datei folgende Zeilen (ca. Zeile 21) aus:
Zitatif( $^O =~ /Win/ ) {
require Win32::SerialPort;
} else {
require Device::SerialPort;
}
und teste, ob es immer noch geht.
Gruß Joachim
Hallo Joachim,
ja, geht auch ohne die Passage.
Gruß
Rainer
Moin Rainer,
dann ist die DevIO doch in ordnung, und es lag nur am Aufruf des Moduls, dann warten wir jetzt mal auf Klaus, damit er wieder zurückändert.
@Klaus,
tut mir leid, aber Du kannst die Änderung
Zitatif( $^O =~ /Win/ ) {
require Win32::SerialPort;
} else {
require Device::SerialPort;
}
wieder Ausbauen, der Fehler war nur der falsche Aufruf des Moduls.
Bei Windows-Systemen muß dass Modul mit diesem Aufruf aufgerufen werden:
define TCM120_1 TCM 120 com10@9600
wobei natürlich der com-Port auf die eigenen Bedürfnisse angepasst werden muss.
@Rudi,
Problem gelöst, DevIO in Ordnung.
Gruß Joachim