Hallo Gemeinde!
Seit Kurzem befasse ich mich mit FHEM (erste Installation vor ca. 12 h). Nun würde ich aber gerne mal etwas sehen, ausser Fehlermeldungen und komischer Ausschriften.
Meine Konfiguration:
- Windows 7 PC mit Perl (soll später durch Raspberry ersetzt werden)
- MySensors Gateway mit Arduino und NRF24L01+ an COM via USB
- MySensors Sensor mit Arduino, NRF24L01+ und DS18B20 zur Messung der Temperatur
- FHEM
Stand:
- Die Hardware funktioniert, im Terminalprogramm kann ich sehen, dass alle paar Sekunden Daten vom Sensor ankommen.
- Perl ist als Portable installiert und hat die Pakete für den COMPORT bekommen. Die Tests bei der Installation waren erfolgreich.
- FHEM ist installiert und funktioniert als WEB-App (getestet mit der Demo von fhem.cfg)
- Versuche, eine eigene fhem.cfg zu schreiben, blieben ohne Erfolg:
Folgende Meldungen in der Console:
F:\Arduino\arduino-1.5.2_MySensor\FHEM\fhem-5.6>F:\Strawberry_Perl\strawberry-perl\perl\bin\perl fhem.pl fhem.cfg
2015.04.02 00:42:46 1: starting in console mode
2015.04.02 00:42:46 1: Including fhem.cfg
2015.04.02 00:42:48 3: WEB: port 8083 opened
2015.04.02 00:42:48 3: Opening GuBe device COM40
Das System kann die angegebene Datei nicht finden.
2015.04.02 00:42:48 1: PERL WARNING: can't open device: \\.\COM40
at ./FHEM/DevIo.pm line 261.
2015.04.02 00:42:48 3: Can't open COM40: No such file or directory
2015.04.02 00:42:48 2: SecurityCheck: WEB has no basicAuth attribute. Restart FHEM for a new check if the problem is f
ixed, or set the global attribute motd to none to supress this message.
2015.04.02 00:42:48 0: Server started with 3 defined entities (version $Id: fhem.pl 8320 2015-03-29 10:49:31Z rudolfkoen
ig $, os MSWin32, user xxxxxxx, pid 8844)
Das System kann die angegebene Datei nicht finden.
Das System kann die angegebene Datei nicht finden.
Der Text "Das System kann die angegebene Datei nicht finden" läuft auf der Console jetzt ständig runter.
Die fhem.cfg habe ich ziemich nackig gemacht, weil ich wissen wolte, welche Datei gemeint ist. Trotzdem schicke ich den aktuellen Inhalt:
#attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
#attr global statefile ./log/fhem.save
#attr global statefile ./demolog/GuBe.save
attr global verbose 3
#attr global updateInBackground
# "global" keyword at the end of following command allows connection from any host
#attr global port 7072 global
#attr global statefile \tmp\fhem.save
#attr global verbose 5
define GuBe MYSENSORS COM40@9600
# bei com14 den tatsächlichen Port gemäß Gerätemanager angeben
#define autocreate autocreate
define WEB FHEMWEB 8083 global
#define WEBphone FHEMWEB 8084 global
#attr WEBphone smallscreen 1
#attr WEBphone stylesheetPrefix smallscreen
#define WEBtablet FHEMWEB 8085 global
#attr WEBtablet touchpad 1
#define WEBtablet FHEMWEB 8085 global
#attr WEBtablet hiddenroom DashboardRoom
#attr WEBtablet iconPath openautomation:fhemSVG
#attr WEBtablet room System
#attr WEBtablet sortRooms Light Cinema Residents Sensors System
#attr WEBtablet stylesheetPrefix ios7touchpad
#attr WEBtablet plotEmbed 0
#define eventTypes eventTypes demolog/eventTypes.txt
#attr eventTypes room System
Frage:
- Kann mir jemand mit ähnlicher Konfiguration eine fhem.cfg schicken, damit ich einen Anfang bekomme?
- Welche Datei könnte in der Meldung von der Console gemeint sein?
Danke und Gruß
Hans
Moin HansIm,
ich hab' zwar nicht wirklich Ahnung, bin selber newbie ABER, die fhem.cfg wird niemals von Hand editiert.
Alles was dort hineinkommt, wird über die fhem-GUI eingetippt - und dann: save config :)
gruß thoska
Ich würde jetzt mal behaupten, dass er deinen COM Port 40 eben nicht findet/öffnen kann.
Ist das wirklich der Anschluss den der Arduino in deinem System generiert?
Ich würde dir empfehlen gleich auf nem Pi zu beginnen. Unter Linux ist es letztendlich alles etwas stressfreier als unter windows (IMHO).
Danke für die Antworten!
Ja, der Com-Port war wohl blockiert. Nach dem Neustart von Windows war er wieder bereit und lässt sich jetzt benutzen.
Inzwischen sieht der Start in der Console so aus:
F:\Arduino\arduino-1.5.2_MySensor\FHEM\fhem-5.6>F:\Strawberry_Perl\strawberry-perl\perl\bin\perl.exe fhem.pl fhem.cfg
2015.04.02 11:55:47 1: starting in console mode
2015.04.02 11:55:47 1: Including fhem.cfg
2015.04.02 11:55:49 3: WEB: port 8083 opened
2015.04.02 11:55:49 3: Opening GuBe device COM40
2015.04.02 11:55:49 3: Setting GuBe baudrate to 57600
2015.04.02 11:55:49 3: GuBe device opened
2015.04.02 11:55:49 0: Server started with 3 defined entities (version $Id: fhem.pl 8320 2015-03-29 10:49:31Z rudolfkoen
ig $, os MSWin32, user xxxxxxx, pid 7032)
Gut!
Wie geht es jetzt weiter? Wo sehe ich die Informationen, die vom Sensor kommen?
Danke und Gruß
Hans
Na im Event Monitor solltest du es sehen können.
VG
Frank
Leider sehe ich im Event Monitor nichts.
Inzwischen habe ich auch die Ursache gefunden: Ich bekomme keine Daten von der seriellen USB-Schnittstelle. Es kommt im Perl einfach nichts an.
Mit folgendem Testprogramm konnte ich das nachweisen:
#!/usr/bin/perl -w
# http://stackoverflow.com/questions/21873576/serial-port-program-with-perl-in-windows-without-using-modules
my $c2 = 0;
system("MODE COM24 baud=57600 stop=1 data=8 parity=n rts=off");
while (1) {
open( FILE, "+>COM24" ) or die("Error reading file, 0stopped");
my ($buffer) = "";
while ( read( FILE, $buffer, 10000 ) ) {
print "$c2\t$buffer\n";
$c2++;
}
close(FILE);
}
Getestet habe ich unter Windows 7 und Windows XP. Bei beiden kommt folgende Ausschrift:
E:\Strawberry_Perl>E:\Strawberry_Perl\strawberry-perl\perl\bin\perl.exe COM_Test
.pl
Status von Gerät COM24:
-----------------------
Baudrate: 57600
Parität: None
Datenbits: 8
Stoppbits: 1
Zeitlimit: OFF
XON/XOFF: OFF
CTS-Handshaking: OFF
DSR-Handshaking: OFF
DSR-Prüfung: OFF
DTR-Signal: OFF
RTS-Signal: OFF
Danach sollten eigentlich die Daten zu sehen sein, die über den COM-Port reinkommen. Es kommt nichts.
Wie kann ich die serielle Schnittstelle dazu bringen, Daten zu empfangen?
Gruß und Dank
Hans
Was etwas irritiert ist, dass du den com40 öffnest, dich bei dem Test aber mit com24 Beschäftigst. Soll das so sein?
Deine Frage ist wahrscheinlich im Windows-Server Bereich besser aufgehoben.
VG
Frank
Ich kann dir aus eigener leidlicher Erfahrung nur empfehlen, FHEM nicht auf Windows laufen zu lassen. Ich habe es wirklich lange versucht, aber es gibt einfach an vielen Stellen Probleme. Du könntest dir eine Linux-VM einrichten, um jetzt mit FHEM zu spielen bevor du deinen Raspi hast. Ich hab es auch unter einer Linux-VM auf Windows 8.1 laufen.
Danke für die Antworten.
Ich bin nun kurz vor der Aufgabe.
@franky08 - Ja es ist ein anderer Port. Ich habe zwischendurch den PC gewechselt. Es war nun ein PC mit Windows XP.
@vbs - Ich werde es mit Linux versuchen. Ich installiere gerade auf einem Stick. Es ist Ubuntu.
Zwischendurch habe ich dern USB-zu-Seriell-Adapter durch einen MAX232 ersetzt. Mein PC hat noch einen echten COM-Port.
Mit dem kleinen Testprogramm sind dann Daten über die serielle Schnittstelle zu empfangen gewesen.
Leider ist in FHEM nichts angekommen.
Gruß
Hans
Danke an alle Helfer!
Hier ist die Erfolgsmeldung: Unter LINUX habe ich es jetzt zum Laufen gebracht.
Für den Test habe ich folgende Konfiguration verwendet:
- PC mit ubuntu 14.04 LTS, auf USB-Stick
- MySensors Gateway mit Arduino Pro Mini, NRF24L01+ und USB/Serial Light Adapter an USB
- MySensors Sensor mit Arduino UNO, NRF24L01+ und DS18B20 zur Messung der Temperatur an USB
- FHEM
Hilfreiche Links:
- http://www.netzmafia.de/skripten/hardware/Arduino/arduinoinstall.html (http://www.netzmafia.de/skripten/hardware/Arduino/arduinoinstall.html)
- http://forum.fhem.de/index.php?topic=28198.0 (http://forum.fhem.de/index.php?topic=28198.0)
Nun kommt die Feinarbeit.
Dann gewöhn dich schonmal an Linux ;)
FHEM macht süchtig und du wirst deinen PC sicher nicht ständig laufen lassen wollen also wirst du um einen Einplatinenrechner nicht umhin kommen.
Sei es RasPi, Cubieboard, -truck oder was auch immer.
Auch du wirst süchtig werden wenn du mal Blut geleckt hast 8)
Die Ideen kommen dann schon mit der Zeit.