Homematic wired mit Serial-RS485-Adapter

Begonnen von MarkusO, 17 Januar 2015, 17:34:03

Vorheriges Thema - Nächstes Thema

MarkusO

Hallo zusammen,

ich möchte mich nach einiger Zeit auch mal wieder mit Homematic wired beschäftigen und habe dafür meinen Rasperry Pi wieder hervor gekramt.
Vor einigen Monaten hatte ich FHEM darauf schon einmal am laufen, aber nachdem ich das System jetzt nochmal neu aufgesetzt habe, wird mein Interface (DIGITUS DA-70157) nicht mehr erkannt. Den genauen Fehler habe ich hier bereits beschrieben:
http://forum.fhem.de/index.php/topic,28560.0.html

Bevor ich jetzt weiter an der Fehlersuche verzweifele, stelle ich hier mal die Frage:
Hat jemand eine gute Anleitung (oder einen Link), die beschreibt, was nach der Installation von FHEM und dem Kopieren der HM485-Lib sonst noch gemacht werden muss, damit der Adapter läuft (z.B. Setzen von irgendwelchen Rechten)?

Folgende Komponenten habe ich im Einsatz:
- Raspberry Pi B+
- Digitus DA-70157 USB-RS485-Adapter
- Raspbian (version December 2014)
- FHEM 5.6
- HM485-Lib (Dirks Master- oder Dev-Branch aus dem Git-Repository oder die Version, die von gevoo weiter entwickelt wird - http://forum.fhem.de/index.php/topic,10607.795.html)

Bin für jeden Hinweis dankbar.

Viele Grüße
Markus

geri

hi!

ich habe auch ein USB aber folgendes http://www.conrad.at/ce/de/product/975604/USB-11-Adapter-1x-D-SUB-Stecker-9pol-RS485-Buchse-1x-USB-11-Stecker-A-Schwarz/SHOP_AREA_37572

meine config### HM485 Interface ###
define HM485_LAN HM485_LAN localhost:2000
attr HM485_LAN HM485d_bind 1
attr HM485_LAN HM485d_device /dev/ttyUSB0
attr HM485_LAN HM485d_startTimeout 2
attr HM485_LAN hmwId 00000001
attr HM485_LAN room System
attr HM485_LAN webCmd RAW 000085CD 98 00000001 780F00:discovery start


habe das ganze am raspi mit COC von busware am laufen.

läuft mit der version vom beitrag #691 von hier http://forum.fhem.de/index.php/topic,10607.690.html und der DevIo.pm aus beitrag #535

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

MarkusO

Hi Gerald,
danke für Deine Antwort. Meine Config sieht genauso aus, daran sollte es also nicht liegen.
Ich habe nochmal einige Schritte aus der Installationsanleitung von dem COC-Modul wiederholt, wobei ich dann folgendes beobachtet habe. Das Modul HM485d läuft noch immer nicht nach einem Reset des RPi. Auch ein Neustart von FHEM über die FHEM-Kommandozeile hilft nicht:

shutdown restart



2015.01.17 21:24:09 1: Including fhem.cfg
2015.01.17 21:24:10 3: telnetPort: port 7072 opened
2015.01.17 21:24:12 3: WEB: port 8083 opened
2015.01.17 21:24:13 3: WEBphone: port 8084 opened
2015.01.17 21:24:13 3: WEBtablet: port 8085 opened
2015.01.17 21:24:13 2: eventTypes: loaded 1 events from ./log/eventTypes.txt
2015.01.17 21:24:15 3: HM485: HM485: Loading available device files
2015.01.17 21:24:15 3: HM485: =====================================
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw-sen-sc-12.pm
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_fm.pm
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw14_dr.pm
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr.pm
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr_v3_02.pm
2015.01.17 21:24:15 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_12_fm.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm_v3_02.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_sr_fm.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr_v3_02.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_dim1l_dr.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr_v3_02.pm
2015.01.17 21:24:16 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_sen_sc_12_dr.pm
2015.01.17 21:24:17 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_virtual.pm
2015.01.17 21:24:17 1: Including ./log/fhem.save
2015.01.17 21:24:17 1: usb create starting
2015.01.17 21:24:36 3: Probing CUL device /dev/ttyAMA0
2015.01.17 21:24:36 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.01.17 21:24:37 3: Probing FRM device /dev/ttyAMA0
2015.01.17 21:24:42 3: Probing TCM_ESP3 device /dev/ttyUSB0
2015.01.17 21:24:42 3: Probing TCM_ESP2 device /dev/ttyUSB0
2015.01.17 21:24:42 3: Probing FHZ device /dev/ttyUSB0
2015.01.17 21:24:43 3: Probing TRX device /dev/ttyUSB0
2015.01.17 21:24:43 3: Probing ZWDongle device /dev/ttyUSB0
2015.01.17 21:24:43 3: Probing FRM device /dev/ttyUSB0
2015.01.17 21:24:49 1: usb create end
2015.01.17 21:24:49 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.01.17 21:24:49 0: Server started with 12 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user fhem, pid 1989)
2015.01.17 21:24:49 3: HM485_LAN: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device /dev/ttyUSB0 --verbose 4
2015.01.17 21:24:49 3: [b]HM485_LAN: HM485d Could not start[/b]




Aber: nach einem manuellen Stoppen und Starten von FHEM über die Konsole wird das Modul richtig geladen.

/etc/init.d/fhem stop
/etc/init.d/fhem start



2015.01.17 21:27:59 1: Including fhem.cfg
2015.01.17 21:27:59 3: telnetPort: port 7072 opened
2015.01.17 21:28:00 3: WEB: port 8083 opened
2015.01.17 21:28:00 3: WEBphone: port 8084 opened
2015.01.17 21:28:00 3: WEBtablet: port 8085 opened
2015.01.17 21:28:00 2: eventTypes: loaded 1 events from ./log/eventTypes.txt
2015.01.17 21:28:01 3: HM485: HM485: Loading available device files
2015.01.17 21:28:01 3: HM485: =====================================
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw-sen-sc-12.pm
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_fm.pm
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw14_dr.pm
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr.pm
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr_v3_02.pm
2015.01.17 21:28:01 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_12_fm.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm_v3_02.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_sr_fm.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr_v3_02.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_dim1l_dr.pm
2015.01.17 21:28:02 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr.pm
2015.01.17 21:28:03 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr_v3_02.pm
2015.01.17 21:28:03 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_sen_sc_12_dr.pm
2015.01.17 21:28:03 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_virtual.pm
2015.01.17 21:28:03 1: Including ./log/fhem.save
2015.01.17 21:28:03 1: usb create starting
2015.01.17 21:28:05 3: Probing CUL device /dev/ttyAMA0
2015.01.17 21:28:06 3: Probing TCM_ESP3 device /dev/ttyAMA0
2015.01.17 21:28:06 3: Probing FRM device /dev/ttyAMA0
2015.01.17 21:28:11 3: Probing TCM_ESP3 device /dev/ttyUSB0
2015.01.17 21:28:11 3: Probing TCM_ESP2 device /dev/ttyUSB0
2015.01.17 21:28:11 3: Probing FHZ device /dev/ttyUSB0
2015.01.17 21:28:12 3: Probing TRX device /dev/ttyUSB0
2015.01.17 21:28:12 3: Probing ZWDongle device /dev/ttyUSB0
2015.01.17 21:28:13 3: Probing FRM device /dev/ttyUSB0
2015.01.17 21:28:18 1: usb create end
2015.01.17 21:28:18 0: Server started with 12 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user pi, pid 2238)
2015.01.17 21:28:18 1: HM485_LAN: HM485d already running with PID  2178. We re use this process!
2015.01.17 21:28:19 3: Opening HM485_LAN device localhost:2000
2015.01.17 21:28:19 3: [b]HM485_LAN device opened[/b]
2015.01.17 21:28:19 3: HM485_LAN: connected to device localhost:2000



Hast Du noch irgend etwas in den Startup-Skripten vom RPi geändert? Oder weiß jemand, worin der Unterschied besteht, ob FHEM direkt nach dem Starten automatisch geladen wird, oder manuell neugestartet wird? Gibt es da Unterschiede bei den Rechten?


Viele Grüße

Markus

geri

Zitat von: MarkusO am 17 Januar 2015, 21:35:23
Hast Du noch irgend etwas in den Startup-Skripten vom RPi geändert?
hi Markus!

ich habe nichts geändert, zumindest nicht das ich wüsste. habe des rs485 viel später in betriebgenommen.

hast du die DevIo.pm auch getauscht?

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

MarkusO

Hi Gerald,
die DevIo.pm habe ich auch getauscht und das Ganze jetzt mit den von Dir beschriebenen Versionen probiert - leider ohne Erfolg.

Verwendest Du auch Raspbian als Betriebssystem mit FHEM 5.6? Sonst würde ich auch hier nochmal andere Versionen testen.

Grüße
Markus

mw77

Hallo Markus,

habe den gleichen Adapter wie du im Einsatz, allerdings bei den Modulen etwas ältere Versionen im Einsatz, z.B. ist die 10_HM485.pm noch die Version 0.3.48.
Fhem ist bei mir noch 5.5, weil das System seit ca. einem dreiviertel Jahr absolut stabil läuft und ich da noch nichts ändern wollte.
Habe das ganze auch auf einem Raspi B+ mit Raspbian am laufen.

Ich kann mich dunkel dran erinnern, das ich am Anfang auch das Problem hatte, das selten eine Verbindung zum Adapter zustande kam, auch der manuelle Start des Daemon über Konsole funktionierte nicht. Habe damals den Port auf localhost:2001 geändert, seitdem läuft das ganze ohne Probleme.
Der Automatische Start des Daemon geht nicht, ist aber ja auch nur bei restart des Raspi nötig. Letzter Restart ist über drei Monate her.

Gruß Markus
HM, HMIP, Shelly, und anderes

geri

#6
Zitat von: MarkusO am 18 Januar 2015, 12:29:12
Verwendest Du auch Raspbian als Betriebssystem mit FHEM 5.6? Sonst würde ich auch hier nochmal andere Versionen testen.
hi Markus!

wenn ich mich recht erinnere (war schon 2013) habe das image von der busware seite als basis gehabt und bin jetzt auf der FHEM 5.6.

wie kann ich feststellen welche linuxversion ich habe? bin kein linux mann. ;-)

wenn du willst kann ich dir mein aktuelles image als download zur verfügung stellen?!

gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

hglaser

#7
Hallo geri
ZitatAber: nach einem manuellen Stoppen und Starten von FHEM über die Konsole wird das Modul richtig geladen.
Ich denke dein Daemon startet wohl zu langsam.
Weiß jetzt nicht genau, ob dieses
attr HM485_LAN HM485d_startTimeout 2
noch Gültigkeit hat, würde aber versuchen den startTimeout zu erhöhen, oder wenn daß nicht klappt, den HM485d.pl direkt im init script vor fhem zu starten und in fhem.cfg
attr HM485_LAN HM485d_bind 0 eintragen

lg Harald
edit:typo

MarkusO

Hallo zusammen,
danke für die Tipps.

ZitatHabe damals den Port auf localhost:2001 geändert, seitdem läuft das ganze ohne Probleme.
Habe ich gerade auch probiert - hat bei mir leider nicht geholfen.

Zitat
Ich denke dein Daemon startet wohl zu langsam.
Weiß jetzt nicht genau, ob dieses
Code: [Auswählen]

attr HM485_LAN HM485d_startTimeout 2

noch Gültigkeit hat, würde aber versuchen den startTimeout zu erhöhen

Kann ich mir auch gut vorstellen, dass es ein Timing-Problem ist. Den Timeout-Wert habe ich erhöht - hat leider auch nichts gebracht. Allerdings ist mir in der 00_HM485_LAN.pm folgendes aufgefallen:

Ich bin überhaupt kein Perl-Experte, aber so wie ich den folgenden Code-Ausschnitt lese, wird erst mit "system($HM485dCommandLine . '&');" versucht, den Dämon zu starten und erst danach wird der Timeout-Wert verwendet.


        ...
system($HM485dCommandLine . '&');

$msg = 'Start HM485d with command line: ' . $HM485dCommandLine;
$pid = HM485_LAN_HM485dGetPid($hash, $HM485dCommandLine);

if ($pid) {
$msg.= "\n" . 'HM485d was started with PID: ' . $pid;
$hash->{HM485d_STATE} = 'started';
$hash->{HM485d_PID} = HM485_LAN_HM485dGetPid($hash, $HM485dCommandLine);

my $HM485dStartTimeout = int(AttrVal($name, 'HM485d_startTimeout', '2'));
if ($HM485dStartTimeout) {
HM485::Util::logger(
$name, 3, 'Connect to HM485d delayed for ' . $HM485dStartTimeout . ' seconds'
);
$hash->{HM485dStartTimeout} = $HM485dStartTimeout;
}

$HM485dStartTimeout = $HM485dStartTimeout + 0.1;
InternalTimer(gettimeofday() + $HM485dStartTimeout, 'HM485_LAN_openDev', $hash, 0);

} else {
$msg.= "\n" . 'HM485d Could not start';
}
        ...

Wenn das wirklich so wäre, dann hätte der Timeout-Wert keinen Einfluss auf das Starten des Dämons, oder?

Zitatoder wenn daß nicht klappt, den HM485d.pl direkt im init script vor fhem zu starten
Klingt interessant, kannst Du mir sagen, wie das Init-Skript heißt, von dem aus FHEM gestartet wird?

Zitatwenn du willst kann ich dir mein aktuelles image als download zur verfügung stellen?!
Vielen Dank. Darauf komme ich gerne zurück, wenn ich es nicht schaffe, das Problem irgendwie zu beheben. Ich würde das Ganze gerne erst verstehen, damit ich auch bei Updates immer wieder weiß, wie ich damit umgehen kann.

ZitatDer Automatische Start des Daemon geht nicht, ist aber ja auch nur bei restart des Raspi nötig. Letzter Restart ist über drei Monate her.
Ja, wirklich oft ist das nicht nötig. Ich hätte aber gerne, dass z.B. nach einem Stromausfall der Raspi wieder startet und alles ganz normal funktioniert, ohne dass ich manuell irgendwelchen Module neu starten muss.

Zitatwie kann ich feststellen welche linuxversion ich habe? bin kein linux mann. ;-)
Wie man sich die Distribution anzeigen lassen kann, weiß ich leider auch nicht (bin auch kein richtiger Linux-Mann), aber hiermit kann man zumindest die Kernel-Verion herausfinden:
cat /proc/version


Viele Grüße
Markus

geri

Zitat von: MarkusO am 18 Januar 2015, 19:54:23
Wie man sich die Distribution anzeigen lassen kann, weiß ich leider auch nicht (bin auch kein richtiger Linux-Mann), aber hiermit kann man zumindest die Kernel-Verion herausfinden:
cat /proc/version
hi!

das kommt bei mir
Linux version 3.12.22+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #691 PREEMPT Wed Jun 18 18:29:58 BST 2014


gruss
Gerald
Raspberry mit COC für HM
RS485 USB für HMW

hglaser

Hallo geri
ZitatIch bin überhaupt kein Perl-Experte, aber so wie ich den folgenden Code-Ausschnitt lese, wird erst mit "system($HM485dCommandLine . '&');" versucht, den Dämon zu starten und erst danach wird der Timeout-Wert verwendet.
stimmt eigentlich schon so :-) der hm485d wird gestartet, danach wartet fhem bei z.B. "HM485d_startTimeout 4" 4 Sekunden bis er den port zum hm485d öffnet, damit dieser genug Zeit hat zu starten.
ZitatKlingt interessant, kannst Du mir sagen, wie das Init-Skript heißt, von dem aus FHEM gestartet wird?
das initscript ist bei einer Standard-Installation "/etc/init.d/fhem" anbei ist mal mein init-script
Ich starte den HM485d.pl auch vor fhem, da es bei mir auch nur so funktioniert. Solltest Du es übernehmen wollen, müsste natürlich ein
attr HM485_LAN HM485d_bind 0
in die fhem.conf und die Installation in von FHEM in "/opt/fhem" sein.

#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072
RS485DEV="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A602UCOG-if00-port0"

case "$1" in
'start')
#  echo "resetting 868MHz extension..."
#  if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
#  if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
#  echo out > /sys/class/gpio/gpio17/direction
#  echo out > /sys/class/gpio/gpio18/direction
#  echo 1 > /sys/class/gpio/gpio18/value
#  echo 0 > /sys/class/gpio/gpio17/value
#  sleep 1
#  echo 1 > /sys/class/gpio/gpio17/value
#  sleep 1
  echo "Starting RS485..."
  perl /opt/fhem/FHEM/lib/HM485/HM485d/HM485d.pl \
                       --serialNumber SGW0123456 \
                       --device $RS485DEV \
       --verbose 3 > /opt/fhem/log/hm485.log 2>&1 &
     
  sleep 1
  echo "Starting fhem..."
#  perl fhem.pl configDB
  perl fhem.pl fhem.cfg
  RETVAL=$?
  ;;
'stop')
       echo "Stopping HM485d.pl..."
pkill -f HM485d.pl
RETVAL=$?

        echo "Stopping fhem..."
        perl fhem.pl $port "shutdown"
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL

wobei natürlich noch der Pfad für deinen Digitus DA-70157 USB-RS485-Adapter noch geändert werden muss, der wird nicht die selbe nummer haben.
Einfach die Zeile
RS485DEV="/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A602UCOG-if00-port0"
ändern. zur Not geht natürlich auch einRS485DEV="/dev/ttyUSB0"
Weiters würde ich auch noch initialUsbCheck in der fhem.cfg ausschalten.
Das bremst einfach nur den Start und findet deinen USB-RS485-Adapter sicher nicht :-)
Einfach ein # vor diese Zeile:
# define initialUsbCheck notify global:INITIALIZED usb create

lg Harald


MarkusO

Hallo Harald,

Deine Antwort hat mir schon ein ganzes Stück weiter geholfen. Ich habe das Start-Skript und fhem.cfg entsprechend angepasst.
Nach jedem Neustart wird der Dämon jetzt tatsächlich erfolgreich gestartet, allerdings kann jetzt der Port nicht mehr geöffnet werden, so dass der Status immer auf "disconnected" bleibt:

2015.01.19 22:05:00 1: Including fhem.cfg
2015.01.19 22:05:01 3: telnetPort: port 7072 opened
2015.01.19 22:05:03 3: WEB: port 8083 opened
2015.01.19 22:05:03 3: WEBphone: port 8084 opened
2015.01.19 22:05:03 3: WEBtablet: port 8085 opened
2015.01.19 22:05:03 2: eventTypes: loaded 1 events from ./log/eventTypes.txt
2015.01.19 22:05:05 3: HM485: HM485: Loading available device files
2015.01.19 22:05:05 3: HM485: =====================================
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw-sen-sc-12.pm
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_fm.pm
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw14_dr.pm
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr.pm
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io12_sw7_dr_v3_02.pm
2015.01.19 22:05:05 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_12_fm.pm
2015.01.19 22:05:06 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm.pm
2015.01.19 22:05:06 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_4_fm_v3_02.pm
2015.01.19 22:05:06 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_io_sr_fm.pm
2015.01.19 22:05:06 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_bl1_dr_v3_02.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_dim1l_dr.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_lc_sw2_dr_v3_02.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_sen_sc_12_dr.pm
2015.01.19 22:05:07 3: HM485: Loading device file: ./FHEM/lib/HM485/Devices/hmw_virtual.pm
2015.01.19 22:05:08 1: Including ./log/fhem.save
2015.01.19 22:05:08 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2015.01.19 22:05:08 0: Server started with 11 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user fhem, pid 1959)
2015.01.19 22:05:08 3: Opening HM485_LAN device localhost:2000
2015.01.19 22:05:08 3: Can't connect to localhost:2000: Connection refused


Könnte das jetzt ein Problem sein, dass FHEM den Dämon nicht mehr verwaltet und deshalb nach dem Starten auch keinen Timeout mehr verwendet, bis der Port geöffnet wird?


Viele Grüße
Markus

hglaser

#12
Hallo Markus

was sagt denn:
sudo ss -pne | grep 2000
und ein
ls -l /dev/ttyUSB*
und ein
sudo id fhem
auf der Console? Womöglich ist der Port ja wirklich von einem anderen Programm belegt oder es ist ein Rechteproblem.
Hast du auch
attr HM485_LAN HM485d_bind 0
in der fhem.cfg eingetragen?

mein fhem.cfg Eintrag sieh übrigens so aus:
define HM485_LAN HM485_LAN localhost:2000
attr HM485_LAN HM485d_bind 0
attr HM485_LAN hmwId 00000001
attr HM485_LAN room HM485
attr HM485_LAN verbose 3

es wäre schön, wenn Du deine fhem.cfg anhängen könntest. Vielleicht ist ja da noch der Wurm drin :-)
Wenn du das initscript von mir übenommen hast, müsste es auch ein "/opt/fhem/log/hm485.log" geben, dann das bitte auch einmal anhängen.

lg Harald

MarkusO

Hallo Harald,

es läuft jetzt alles wie gewünscht! Das geänderte Startup-Skript war schon die Lösung.

Dass der Port nicht geöffnet werden konnte, lag daran, dass die ServerTools.pm nicht vorhanden war. Wie das passieren konnte, kann ich mir auch nicht ganz erklären (möglicherweise wurde die Datei irgendwie beschädigt, als ich sie mal über eine Samba-Freigabe geöffnet hatte?). Der Tipp mit dem Logfile hat mich auf die Lösung gebracht. ServerTools.pm neu rein kopiert und schon kann der Port geöffnet werden.


Ich kann mir immer noch nicht erklären, warum der Dämon nach dem Booten nicht gestartet werden kann und nach einem manuellen Stoppen und Starten von FHEM läuft. Aber egal, mit Deinem Startup-Skript gibt es jetzt eine Lösung die funktioniert.


Nur der Vollständigkeit halber hier nochmal die Ausgaben, nach denen Du gefragt hattest, ist vielleicht für andere noch interessant, die ein ähnliches Problem haben:

pi@Raspberry / $ sudo ss -pne | grep 2000
ESTAB      0      0                 127.0.0.1:2000             127.0.0.1:59139  timer:(keepalive,111min,0) users:(("perl",2345,6)) ino:3787 sk:da23b700
ESTAB      0      0                 127.0.0.1:59139            127.0.0.1:2000   timer:(keepalive,111min,0) users:(("perl",2348,5)) uid:999 ino:3786 sk:da238000

Die Ausgabe kommt, wenn FHEM gestartet ist. Falls FHEM gestoppt ist, wird nichts gefunden (Port 2000 also von keinem anderen geöffnet)


pi@Raspberry / $ ls -l /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Jan  1  1970 /dev/ttyUSB0



pi@Raspberry / $ sudo id fhem
uid=999(fhem) gid=20(dialout) Gruppen=20(dialout),5(tty)



Vielen Dank nochmal

LG, Markus