FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Ralf9 am 28 Januar 2015, 14:34:07

Titel: Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 28 Januar 2015, 14:34:07
Hallo,

nach einem fhem update ist bei mir der HM485d Server nicht mehr gestartet:


root@cubie:/opt/fhem# /usr/bin/perl ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device /dev/ttyS3 --verbose 5
Bareword "EAGAIN" not allowed while "strict subs" in use at /opt/fhem/FHEM/lib/HM485/HM485d/../../../TcpServerUtils.pm line 59.
Bareword "EWOULDBLOCK" not allowed while "strict subs" in use at /opt/fhem/FHEM/lib/HM485/HM485d/../../../TcpServerUtils.pm line 97.
Compilation failed in require at /opt/fhem/FHEM/lib/HM485/HM485d/../../../ServerTools.pm line 65.


Nun habe ich in der "ServerTools.pm" die Zeile 65 geändert in:
require $pathFHEM . 'TcpServerUtils485.pm';

Die "TcpServerUtils.pm" vom 2014-12-14 habe ich in "TcpServerUtils485.pm" umbenannt und zusätzlich ins FHEM Verzeichnis kopiert.

Nun habe ich beim Starten vom HM485d die folgende Fehlermeldung bekommen:

root@cubie:/opt/fhem# /usr/bin/perl ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device /dev/ttyS3 --verbose 5
2015.01.28 11:49:24.529 3: HM485d: port 2000 opened
2015.01.28 11:49:24.530 3: HM485d: server waiting for client connection on port 2000
2015.01.28 11:49:24.531 3: Opening SERIAL device /dev/ttyS3
2015.01.28 11:49:24.622 3: SERIAL device opened
Undefined subroutine &main::TimeNow called at /opt/fhem/FHEM/lib/HM485/HM485d/../../../DevIo.pm line 20.


Nun habe ich in der "ServerTools.pm" die Zeile 64 geändert in:
require $pathFHEM . 'DevIo485.pm';

Die "DevIo.pm" vom 2014-05-13 habe ich in "DevIo485.pm" umbenannt.



Außerdem habe ich beim HM485d Server massive Timingprobleme.
Der HM485d hat die Version 0.2.1
Als Parameter verwende ich
my $gpioTxenInit   = '/usr/local/bin/gpio export 3 out';
my $gpioTxenCmd1   = '/usr/local/bin/gpio write 26 1';
my $gpioTxenCmd0   = '/usr/local/bin/gpio write 26 0';

Als RS485 Interface verwende ich den RS485 Teil von der Schaltung von Dirk "Raspberry Pi Adapterplatine LCD, RS485, 868Mhz_48" (siehe Anlage).
Als RS485 Tranceiver verwende ich den LTC1487.

Beim Starten von fhem stehen sehr viele Response Timeout in der fhem.log. Siehe auch das HM485d-log in der Anlage.
Dort ist zu erkennen, daß das EEPROM Read nur sporadisch funktioniert.

Wenn ich aber z.B. ein
set HM485_LAN RAW 00008C69 98 00000001 5200100B
in der Kommandozeile vom fhemweb eingebe funktioniert es fast immer.

2015.01.28 13:47:20.438 3: HM485d: Tx: (45:1) I[0](0,Y,F,B)(98) 00000001 -> 00008C69 [6] 52(R) 00100B {EDCA}
2015.01.28 13:47:20.441 3: HM485d: Rx:  I[0](0,Y,F,B)(98) 00000001 -> 00008C69 [6] 52(R) 00100B {EDCA}
2015.01.28 13:47:20.460 3: HM485d: Rx: Response: (45) I[0](0,F,B)(18) 00008C69 -> 00000001 [13] 0A(
) 030A030A030AFFFFFFFF {38E8}
2015.01.28 13:47:20.484 3: HM485d: Tx: ACK(0,B)(19) 00000001 -> 00008C69 [2] {8868}
2015.01.28 13:47:20.488 3: HM485d: Rx: ACK(0,B)(19) 00000001 -> 00008C69 [2] {8868}


Kann dies auch mit den einen oder anderen Bug am HM485d.pl zusammenhängen den Dirk noch fixen will.
http://forum.fhem.de/index.php/topic,10607.msg238568.html#msg238568

Nachtrag:
Auf meinem Testsystem mit dem BananaPi hatte ich mit dem EEPROM read noch keine Probleme.
Ich hatte ab und zu response timeout beim Schalten der Ausgänge mit set xx on/off
Probleme machten nur die Befehle die mit fhem('set ..') über Perl ausgeführt wurden.
Ich hatte gehofft, daß diese mit dem Umzug auf den Cubietruck verschwinden, aber das Gegenteil war der Fall.
Ist der Cubietruck evtl zu schnell?

Nachtrag2:
Ich habe inzwischen bei mir den Fehler gefunden, die "###.." und Response Timeouts sind jetzt alle weg (auch beim Starten).
Der Fehler war in der Ansteuerung des Tx-Enable Signals, welche nur benötigt wird, wenn der RS485 Transceiver an der seriellen Schnittstelle angeschlossen wird.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: rudolfkoenig am 28 Januar 2015, 14:43:09
Dass ein HM485d.pl existiert, bzw. dass es TcpServerUtils.pm verwendet, war mir nicht bewusst. In der letzten Version wurde die Zeile "use Errno qw(:POSIX);" aus TcpServerUtils entfernt, weil sie bereits in fhem.pl vorhanden ist. Diese Zeile sollte mAn in HM485d.lp aufgenommen werden.
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: Ralf9 am 30 Januar 2015, 16:51:04
Bin ich der einzigste der beim HM485d-Server Timingprobleme hat? Zu erkennen ist dies u.a. an den Response Timeouts in der fhem.log.

Hat jemand eine Idee an was das liegen kann?

@Dirk: kann es an den Bugs liegen die noch im HM485d-Server sind?

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: geri am 30 Januar 2015, 17:55:14
Zitat von: Ralf9 am 30 Januar 2015, 16:51:04
Bin ich der einzigste der beim HM485d-Server Timingprobleme hat? Zu erkennen ist dies u.a. an den Response Timeouts in der fhem.log.
hallo Ralf!

habe das nur beim starten.
auszug aus meinem fhemlog 2015.01.30 14:39:16.184 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:15.163 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:14.150 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:13.136 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:12.122 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:11.108 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:10.087 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:09.073 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:08.060 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:39:07.046 3: HM485: RESPONSE TIMEOUT for 000110C0
2015.01.30 14:39:06.032 3: HM485: RESPONSE TIMEOUT for 000110C0
2015.01.30 14:39:05.013 3: HM485: RESPONSE TIMEOUT for 000110C0
2015.01.30 14:39:03.999 3: HM485: RESPONSE TIMEOUT for 0000B97B
2015.01.30 14:39:02.985 3: HM485: RESPONSE TIMEOUT for 0000B97B
2015.01.30 14:39:01.971 3: HM485: RESPONSE TIMEOUT for 0000B97B
2015.01.30 14:39:00.958 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:38:59.945 3: HM485: RESPONSE TIMEOUT for 0000DA42
2015.01.30 14:38:55.079 3: HM485: RESPONSE TIMEOUT for 0000DA42


und dann läuft alles. also fast alles, ist ja noch in entwicklung das modul.

ich verwende aber nicht die originale "DevIo.pm" und TcpServerUtils.pm.

gruss
Gerald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: Ralf9 am 30 Januar 2015, 18:45:58
Zitat von: geri am 30 Januar 2015, 17:55:14
habe das nur beim starten.
auszug aus meinem fhemlog [

Hallo Gerald,

hast Du schon mal in die "fhem.save" geschaut ob die EEPROM Inhalte vollständig eingelesen wurden. Die fhem.save wird mit "Save config" gespeichert.
"################################" bedeutet, daß es beim einlesen des entsprechenden EEPROM Inhaltes zu einem Response Timeout kam.
Bei mir sieht es so aus:

setstate HMW_IO_12_FM_JEQ0189933 ACK
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:47 .eeprom_0000 FF0A00000001FE3F00030A030A030A03
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:47 .eeprom_0010 0A030A030A030AFFFFFFFFFFFFFFFF03
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0020 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0030 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0040 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0050 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0060 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0070 ################################
setstate HMW_IO_12_FM_JEQ0189933 2015-01-30 18:15:46 .eeprom_0080 ################################
...

setstate HMW_Sen_SC_12_DR_LEQ1184675 ACK
setstate HMW_Sen_SC_12_DR_LEQ1184675 2015-01-30 18:11:13 .eeprom_0000 FF14FFFFFFFF0102FF03FF02FFFFFFFF
setstate HMW_Sen_SC_12_DR_LEQ1184675 2015-01-30 18:10:37 .eeprom_0010 ################################


Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: hglaser am 30 Januar 2015, 23:43:43
Hallo Ralf

Tatsache ist mir noch gar nicht aufgefallen :-\
Bei mir sind sie die "#####" allerdings weg, wenn ich nach einer Weile ein
get HMW_LC_Bl1_DR_HBW0051765 config all
ausführe.
Ist hier FHEM zu Beginn, also beim Starten noch etwas überlastet? Bei mir sieht man schön, daß am Anfang, unterm Scan der Wired-Devices auch noch der ActionDetector der Funk-Devices ausgefürt wird. Womöglich wird das zuviel auf einmal. Ich habe auch nur einen RasperryPi.

Ich musste ebenfalls nach einem Update die ServerTools.pm anpassen. Nur habe ich anstatt die die alte TcpServerUtils.pm umzubenennen, ein
"use Errno qw(:POSIX);" eingetragen, so wie es Rudolf vorgeschlagen hat. Bei der DevIO.pm habe ich es Dir nachgemacht. hier sollten wir einmal Dirk fragen ob er diese DevIO nicht in hm485d.pm integrieren könnte.

lg Harald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: Ralf9 am 31 Januar 2015, 15:42:58
Ich habe mal bei der aktuellen DevIo.pm die Zeile 20, wo das "TimeNow" die Fehlermeldung erzeugt, mit # auskommentiert. Mit dieser DevIo vom 2014-11-30 bekomme ich aber noch mehr Response Timeout.

Ich habe die Response Timeout auch nach dem Starten, wenn ich ein "get .. config all" ausführe und wenn ich die Ausgänge mit den WebCmd on/off schalte.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: geri am 09 Februar 2015, 12:19:18
Zitat von: Ralf9 am 30 Januar 2015, 18:45:58
hast Du schon mal in die "fhem.save" geschaut ob die EEPROM Inhalte vollständig eingelesen wurden. Die fhem.save wird mit "Save config" gespeichert.
"################################" bedeutet, daß es beim einlesen des entsprechenden EEPROM Inhaltes zu einem Response Timeout kam.
hallo Ralf!

war eine woche skifahren darum erst heute meine rückmeldung.

sieht bei mir heute nach dem einspielen der "10_HM485.pm   Version 0.5.125" so aus setstate HM485_LAN closed
setstate HM485_LAN 2014-12-04 09:55:11 state disconnected
setstate HMW_IO_12_Sw14 ACK
setstate HMW_IO_12_Sw14 2015-01-14 16:02:28 .eeprom_0000 FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFF
setstate HMW_IO_12_Sw14 2015-01-14 16:02:28 .eeprom_0010 012CFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw14 2015-01-30 23:21:43 state ACK
setstate HMW_IO_12_Sw14_01 off
setstate HMW_IO_12_Sw14_01 2015-01-30 23:21:43 STATE off
setstate HMW_IO_12_Sw14_02 off
setstate HMW_IO_12_Sw14_02 2015-01-24 14:34:38 STATE off
setstate HMW_IO_12_Sw14_03 off
setstate HMW_IO_12_Sw14_03 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_04 off
setstate HMW_IO_12_Sw14_04 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_05 off
setstate HMW_IO_12_Sw14_05 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_06 off
setstate HMW_IO_12_Sw14_06 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_07 off
setstate HMW_IO_12_Sw14_07 2015-01-21 12:43:03 STATE off
setstate HMW_IO_12_Sw14_08 off
setstate HMW_IO_12_Sw14_08 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_09 off
setstate HMW_IO_12_Sw14_09 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_10 off
setstate HMW_IO_12_Sw14_10 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_11 off
setstate HMW_IO_12_Sw14_11 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_12 off
setstate HMW_IO_12_Sw14_12 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_13 off
setstate HMW_IO_12_Sw14_13 2015-01-15 18:14:31 STATE off
setstate HMW_IO_12_Sw14_14 off
setstate HMW_IO_12_Sw14_14 2015-01-15 18:14:31 STATE off
setstate HMW_IO_12_Sw14_15 on
setstate HMW_IO_12_Sw14_15 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_16 on
setstate HMW_IO_12_Sw14_16 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_17 on
setstate HMW_IO_12_Sw14_17 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_18 on
setstate HMW_IO_12_Sw14_18 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_19 on
setstate HMW_IO_12_Sw14_19 2015-01-15 18:14:32 STATE on
setstate HMW_IO_12_Sw14_20 on
setstate HMW_IO_12_Sw14_20 2015-01-15 18:14:32 STATE on
setstate HMW_IO_12_Sw14_21 VALUE_0
setstate HMW_IO_12_Sw14_21 2015-01-15 18:14:32 VALUE 0
setstate HMW_IO_12_Sw14_22 off
setstate HMW_IO_12_Sw14_22 2015-01-15 18:14:32 STATE off
setstate HMW_IO_12_Sw14_23 off
setstate HMW_IO_12_Sw14_23 2015-01-15 18:14:32 STATE off
setstate HMW_IO_12_Sw14_24 VALUE_0
setstate HMW_IO_12_Sw14_24 2015-01-15 18:14:32 VALUE 0
setstate HMW_IO_12_Sw14_25 VALUE_0
setstate HMW_IO_12_Sw14_25 2015-01-15 18:14:33 VALUE 0
setstate HMW_IO_12_Sw14_26 VALUE_0
setstate HMW_IO_12_Sw14_26 2015-01-15 18:14:33 VALUE 0
setstate HMW_IO_12_Sw7 ACK
setstate HMW_IO_12_Sw7 2015-01-30 14:38:40 .eeprom_0000 ################################
...
setstate HMW_IO_12_Sw7 2015-01-30 14:38:40 .eeprom_00D0 ################################
setstate HMW_IO_12_Sw7 2015-01-30 14:39:35 .eeprom_00E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
...
setstate HMW_IO_12_Sw7 2015-01-30 14:39:39 .eeprom_03F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 09:17:47 state ACK
setstate HMW_IO_12_Sw7_01 2015-01-21 12:39:26 PRESS_SHORT PRESS_SHORT 29
setstate HMW_IO_12_Sw7_13 off
setstate HMW_IO_12_Sw7_13 2015-01-29 10:26:02 STATE off
setstate HMW_IO_12_Sw7_14 off
setstate HMW_IO_12_Sw7_14 2015-02-09 08:40:34 STATE off
setstate HMW_IO_12_Sw7_15 off
setstate HMW_IO_12_Sw7_15 2015-01-29 10:26:04 STATE off
setstate HMW_IO_12_Sw7_16 off
setstate HMW_IO_12_Sw7_16 2015-01-28 22:33:09 STATE off
setstate HMW_IO_12_Sw7_17 off
setstate HMW_IO_12_Sw7_17 2015-01-28 22:33:09 STATE off
setstate HMW_IO_12_Sw7_18 off
setstate HMW_IO_12_Sw7_18 2015-01-28 22:33:09 STATE off
setstate HMW_IO_12_Sw7_19 off
setstate HMW_IO_12_Sw7_19 2015-01-28 22:33:10 STATE off
setstate HMW_Sen_SC_12 ACK
setstate HMW_Sen_SC_12 2015-01-30 14:38:35 .eeprom_0000 ################################
setstate HMW_Sen_SC_12 2015-01-30 14:38:35 .eeprom_0010 ################################
setstate HMW_Sen_SC_12 2015-02-09 09:23:01 state ACK
setstate HMW_Sen_SC_12_01 on
setstate HMW_Sen_SC_12_01 2015-02-09 08:40:34 SENSOR on
setstate HMW_Sen_SC_12_02 on
setstate HMW_Sen_SC_12_02 2015-02-09 09:23:01 SENSOR on
setstate HMW_Sen_SC_12_03 on
setstate HMW_Sen_SC_12_03 2015-01-29 13:30:14 SENSOR on
setstate HMW_Sen_SC_12_04 on
setstate HMW_Sen_SC_12_04 2015-01-29 13:30:14 SENSOR on
setstate HMW_Sen_SC_12_05 off
setstate HMW_Sen_SC_12_05 2015-01-29 13:30:14 SENSOR off
setstate HMW_Sen_SC_12_06 on
setstate HMW_Sen_SC_12_06 2015-01-29 13:30:15 SENSOR on
setstate HMW_Sen_SC_12_07 on
setstate HMW_Sen_SC_12_07 2015-01-29 13:30:15 SENSOR on
setstate HMW_Sen_SC_12_08 off
setstate HMW_Sen_SC_12_08 2015-01-29 13:30:15 SENSOR off
setstate HMW_Sen_SC_12_09 off
setstate HMW_Sen_SC_12_09 2015-01-29 13:30:15 SENSOR off
setstate HMW_Sen_SC_12_10 off
setstate HMW_Sen_SC_12_10 2015-01-29 13:30:17 SENSOR off
setstate HMW_Sen_SC_12_11 off
setstate HMW_Sen_SC_12_11 2015-01-29 13:30:17 SENSOR off
setstate HMW_Sen_SC_12_12 on
setstate HMW_Sen_SC_12_12 2015-01-29 13:30:18 SENSOR on


so wie es derzeit aussieht läuft alles. ich habe nur nach einen neuestart des raspi ein timeout vom hmw-sen-sc-12.

gruss
Gerald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: Ralf9 am 09 Februar 2015, 13:36:20
Zitat von: geri am 09 Februar 2015, 12:19:18

sieht bei mir heute nach dem einspielen der "10_HM485.pm   Version 0.5.125" so aus
setstate HMW_IO_12_Sw7 2015-01-30 14:38:40 .eeprom_0000 ################################


Hallo Gerald,

die "###.." dürften nicht sein, evtl gibt es eine Überlastung beim Starten.
Wenn Du bei den Modulen mit den "###.." ein "get config all" und "save config" ausführst, sind dann die "###.." und timeouts weg?   

Ich habe inzwischen bei mir den Fehler gefunden, die "###.." und Response Timeouts sind jetzt alle weg (auch beim Starten).
Der Fehler war in der Ansteuerung des Tx-Enable Signals, welche nur benötigt wird, wenn der RS485 Transceiver an der seriellen Schnittstelle angeschlossen wird.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: geri am 09 Februar 2015, 16:26:15
Zitat von: Ralf9 am 09 Februar 2015, 13:36:20
Hallo Gerald,

die "###.." dürften nicht sein, evtl gibt es eine Überlastung beim Starten.
Wenn Du bei den Modulen mit den "###.." ein "get config all" und "save config" ausführst, sind dann die "###.." und timeouts weg?   

Ich habe inzwischen bei mir den Fehler gefunden, die "###.." und Response Timeouts sind jetzt alle weg (auch beim Starten).
Der Fehler war in der Ansteuerung des Tx-Enable Signals, welche nur benötigt wird, wenn der RS485 Transceiver an der seriellen Schnittstelle angeschlossen wird.

Gruß Ralf
hallo Ralf!

schaut nach einem "get config all" und "save" so aus setstate HM485_LAN open
setstate HM485_LAN 2015-02-09 16:07:45 state disconnected
setstate HMW_IO_12_Sw14 ACK
setstate HMW_IO_12_Sw14 2015-01-14 16:02:28 .eeprom_0000 FFFFFFFFFFFFFFFFF9FFFFFFFFFFFFFF
setstate HMW_IO_12_Sw14 2015-01-14 16:02:28 .eeprom_0010 012CFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw14 2015-02-09 16:22:26 state ACK
setstate HMW_IO_12_Sw14_01 off
setstate HMW_IO_12_Sw14_01 2015-02-09 14:58:17 STATE off
setstate HMW_IO_12_Sw14_02 off
setstate HMW_IO_12_Sw14_02 2015-01-24 14:34:38 STATE off
setstate HMW_IO_12_Sw14_03 off
setstate HMW_IO_12_Sw14_03 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_04 off
setstate HMW_IO_12_Sw14_04 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_05 off
setstate HMW_IO_12_Sw14_05 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_06 off
setstate HMW_IO_12_Sw14_06 2015-01-15 18:14:29 STATE off
setstate HMW_IO_12_Sw14_07 off
setstate HMW_IO_12_Sw14_07 2015-01-21 12:43:03 STATE off
setstate HMW_IO_12_Sw14_08 off
setstate HMW_IO_12_Sw14_08 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_09 off
setstate HMW_IO_12_Sw14_09 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_10 off
setstate HMW_IO_12_Sw14_10 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_11 off
setstate HMW_IO_12_Sw14_11 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_12 off
setstate HMW_IO_12_Sw14_12 2015-01-15 18:14:30 STATE off
setstate HMW_IO_12_Sw14_13 off
setstate HMW_IO_12_Sw14_13 2015-01-15 18:14:31 STATE off
setstate HMW_IO_12_Sw14_14 off
setstate HMW_IO_12_Sw14_14 2015-01-15 18:14:31 STATE off
setstate HMW_IO_12_Sw14_15 on
setstate HMW_IO_12_Sw14_15 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_16 on
setstate HMW_IO_12_Sw14_16 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_17 on
setstate HMW_IO_12_Sw14_17 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_18 on
setstate HMW_IO_12_Sw14_18 2015-01-15 18:14:31 STATE on
setstate HMW_IO_12_Sw14_19 on
setstate HMW_IO_12_Sw14_19 2015-01-15 18:14:32 STATE on
setstate HMW_IO_12_Sw14_20 on
setstate HMW_IO_12_Sw14_20 2015-01-15 18:14:32 STATE on
setstate HMW_IO_12_Sw14_21 VALUE_0
setstate HMW_IO_12_Sw14_21 2015-01-15 18:14:32 VALUE 0
setstate HMW_IO_12_Sw14_22 off
setstate HMW_IO_12_Sw14_22 2015-01-15 18:14:32 STATE off
setstate HMW_IO_12_Sw14_23 off
setstate HMW_IO_12_Sw14_23 2015-01-15 18:14:32 STATE off
setstate HMW_IO_12_Sw14_24 VALUE_0
setstate HMW_IO_12_Sw14_24 2015-01-15 18:14:32 VALUE 0
setstate HMW_IO_12_Sw14_25 VALUE_0
setstate HMW_IO_12_Sw14_25 2015-01-15 18:14:33 VALUE 0
setstate HMW_IO_12_Sw14_26 VALUE_0
setstate HMW_IO_12_Sw14_26 2015-01-15 18:14:33 VALUE 0
setstate HMW_IO_12_Sw7 ACK
setstate HMW_IO_12_Sw7 2015-02-09 16:20:31 .eeprom_0000 FF14FFFFFFFFFE030A030A030A030A03
setstate HMW_IO_12_Sw7 2015-02-09 16:20:31 .eeprom_0010 0A030A030A030A030A030A030A030A01
setstate HMW_IO_12_Sw7 2015-02-09 16:20:31 .eeprom_0020 FF01FF00FF00FF00FF00FF00FFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0030 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0040 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0050 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0060 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0070 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0080 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_0090 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_00A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_00B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_00C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:32 .eeprom_00D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_00E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_00F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0100 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0110 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0120 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0130 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0140 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0150 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0160 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0170 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0180 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_0190 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_01A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:33 .eeprom_01B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_01C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_01D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_01E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_01F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0200 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0210 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0220 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0230 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0240 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0250 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0260 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0270 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:34 .eeprom_0280 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0290 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_02F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0310 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0320 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0330 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0340 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:35 .eeprom_0350 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_0360 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_0370 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_0380 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_0390 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:20:36 .eeprom_03F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
setstate HMW_IO_12_Sw7 2015-02-09 16:22:05 state ACK
setstate HMW_IO_12_Sw7_01 2015-02-09 14:07:51 PRESS_SHORT PRESS_SHORT 31
setstate HMW_IO_12_Sw7_13 off
setstate HMW_IO_12_Sw7_13 2015-01-29 10:26:02 STATE off
setstate HMW_IO_12_Sw7_14 off
setstate HMW_IO_12_Sw7_14 2015-02-09 14:58:54 STATE off
setstate HMW_IO_12_Sw7_15 off
setstate HMW_IO_12_Sw7_15 2015-02-09 14:07:51 STATE off
setstate HMW_IO_12_Sw7_16 off
setstate HMW_IO_12_Sw7_16 2015-01-28 22:33:09 STATE off
setstate HMW_IO_12_Sw7_17 off
setstate HMW_IO_12_Sw7_17 2015-02-09 14:08:00 STATE off
setstate HMW_IO_12_Sw7_18 off
setstate HMW_IO_12_Sw7_18 2015-01-28 22:33:09 STATE off
setstate HMW_IO_12_Sw7_19 off
setstate HMW_IO_12_Sw7_19 2015-01-28 22:33:10 STATE off
setstate HMW_Sen_SC_12 ACK
setstate HMW_Sen_SC_12 2015-02-09 16:22:02 .eeprom_0000 FF14FFFFFFFF0103FF03FF03FF03FF03
setstate HMW_Sen_SC_12 2015-02-09 16:22:02 .eeprom_0010 FF03FF03FF03FF03FF03FF03FF03FFFF
setstate HMW_Sen_SC_12 2015-02-09 16:22:04 state ACK
setstate HMW_Sen_SC_12_01 on
setstate HMW_Sen_SC_12_01 2015-02-09 16:22:02 SENSOR on
setstate HMW_Sen_SC_12_02 on
setstate HMW_Sen_SC_12_02 2015-02-09 16:22:03 SENSOR on
setstate HMW_Sen_SC_12_03 on
setstate HMW_Sen_SC_12_03 2015-02-09 16:22:03 SENSOR on
setstate HMW_Sen_SC_12_04 on
setstate HMW_Sen_SC_12_04 2015-02-09 16:22:03 SENSOR on
setstate HMW_Sen_SC_12_05 off
setstate HMW_Sen_SC_12_05 2015-02-09 16:22:03 SENSOR off
setstate HMW_Sen_SC_12_06 on
setstate HMW_Sen_SC_12_06 2015-02-09 16:22:03 SENSOR on
setstate HMW_Sen_SC_12_07 on
setstate HMW_Sen_SC_12_07 2015-02-09 16:22:03 SENSOR on
setstate HMW_Sen_SC_12_08 off
setstate HMW_Sen_SC_12_08 2015-02-09 16:22:03 SENSOR off
setstate HMW_Sen_SC_12_09 off
setstate HMW_Sen_SC_12_09 2015-02-09 16:22:04 SENSOR off
setstate HMW_Sen_SC_12_10 off
setstate HMW_Sen_SC_12_10 2015-02-09 16:22:04 SENSOR off
setstate HMW_Sen_SC_12_11 off
setstate HMW_Sen_SC_12_11 2015-02-09 16:22:04 SENSOR off
setstate HMW_Sen_SC_12_12 on
setstate HMW_Sen_SC_12_12 2015-02-09 16:22:04 SENSOR on


wie hast du den fehler weg bekommen?

gruss
Gerald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: Ralf9 am 09 Februar 2015, 18:56:02
Zitat von: geri am 09 Februar 2015, 16:26:15
schaut nach einem "get config all" und "save" so aus

wie hast du den fehler weg bekommen?

gruss
Gerald

Hallo Gerald,

nun sieht es gut aus.

Der Fehler, den ich hatte, betrifft Dich nicht, da Du deinen RS485 Adapter an USB angeschlossen hast.

Hast Du es schon mal mit einem vergrößern von HM485d_startTimeout versucht?
"HM485d_startTimeout: Manchmal, z.B. auf langsameren Geräten wie der FritzBox oder dem Raspberry Pi, ist es erforderlich den hm485d verzögert zu starten. Hier kann die Verzögerung in Sekunden angegeben werden."

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei TcpServerUtils.pm nach Update
Beitrag von: geri am 10 Februar 2015, 00:30:21
Zitat von: Ralf9 am 09 Februar 2015, 18:56:02
Hast Du es schon mal mit einem vergrößern von HM485d_startTimeout versucht?
"HM485d_startTimeout: Manchmal, z.B. auf langsameren Geräten wie der FritzBox oder dem Raspberry Pi, ist es erforderlich den hm485d verzögert zu starten. Hier kann die Verzögerung in Sekunden angegeben werden."
hi Ralf!

ich habe derzeit eine HM485d_startTimeout von 2 eingestellt. keine ahnung ob das viel oder wenig ist?!

gruss
Gerald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 14 Februar 2015, 20:54:26
So, prima, jetzt hat's mich auch erwischt. Mal wieder das "Never change..." nicht beachtet, Update angestoßen und nu...Kacke.

Bareword "EAGAIN" not allowed while "strict subs" in use at /opt/fhem/FHEM/lib/HM485/HM485d/../../../TcpServerUtils.pm line 59.
Bareword "EWOULDBLOCK" not allowed while "strict subs" in use at /opt/fhem/FHEM/lib/HM485/HM485d/../../../TcpServerUtils.pm line 97.
Compilation failed in require at /opt/fhem/FHEM/lib/HM485/HM485d/../../../ServerTools.pm line 65.


Vor ein paar Wochen konnte ich mir noch damit behelfen, eine alte Version der DevIo.pm einzuspielen und die Verbindung zum RS485 LAN-Interface stand wieder. Jetzt hilft auch das nicht mehr und nun fahren morgen meine Rolläden nicht hoch und der Dimmer funktioniert auch nicht mehr. Bin jetzt echt frustriert. Was kann man noch tun? Hat jemand eine Idee?

Danke und Gruß
Uwe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 14 Februar 2015, 21:07:54
Hallo Uwe,

das Problem ist die TcpServerUtils.pm. Die Lösung steht in der ersten oder zweiten Nachricht dieses Themas hier.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 14 Februar 2015, 21:22:23
Danke,ich vermute, Du beziehst Dich auf das hier (http://forum.fhem.de/index.php/topic,32931.msg253103.html#msg253103). Hat das bei Dir funktioniert? Ich habe leider keinen Schimmer, an welcher Stelle ich die Zeile einfügen soll bzw. ob diese Zeile in der Form vollständig ist.

Gruß
Uwe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 14 Februar 2015, 21:37:49
OK, ich glaube, ich habe es hinbekommen. Jetzt bekomme ich beim Start von FHEM diese Meldung:
Undefined subroutine &main::TimeNow called at /opt/fhem/FHEM/lib/HM485/HM485d/../../../DevIo.pm line 20.

Was kann ich jetzt dagegen noch tun?

Danke
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 14 Februar 2015, 21:56:08
Zitat von: UweH am 14 Februar 2015, 21:37:49
Was kann ich jetzt dagegen noch tun?

Nochmal das hier
http://forum.fhem.de/index.php/topic,32931.msg253098.html#msg253098
lesen.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 14 Februar 2015, 22:28:30
OK, Danke, Zeile 20 auskommentieren war der letzte Kick.
Also alles in allem habe ich "use Errno qw(:POSIX);" in HM485d.pl eingefügt und Zeile 20 in DevIO.pm auskommentiert... ::)

Danke für die Hilfe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 15 Februar 2015, 11:44:39
Hallo Uwe,

wo hast Du das "use Errno qw(:POSIX);" in die HM485d.pl eingefügt?

Bei der aktuellen DevIO.pm
"# $Id: DevIo.pm 7099 2014-11-30 08:51:47Z rudolfkoenig $"
wurde außer dem "setReadingsVal(.." in Zeile 20 noch die beiden folgenden Änderungen vorgenommen.
Diese Änderungen dürften nur das RS485 LAN-Interface betreffen.

Interessant wäre, ob diese beiden Änderungen Vor- oder Nachteile haben. Beim Starten und beim normalen Betrieb dürfen in der fhem-log keine "Response TimeOut" stehen.


Hier wurde die bufsize von 256 auf 4096 erhöht:

sub
DevIo_DoSimpleRead($)
{
  my ($hash) = @_;
  my ($buf, $res);

  if($hash->{USBDev}) {
    $buf = $hash->{USBDev}->input();

  } elsif($hash->{DIODev}) {
    $res = sysread($hash->{DIODev}, $buf, 4096);
    $buf = undef if(!defined($res));

  } elsif($hash->{TCPDev}) {
    $res = sysread($hash->{TCPDev}, $buf, 4096);
    $buf = "" if(!defined($res));

  }
  return $buf;
}



Und hier wurde aus
$buf = DevIo_DoSimpleRead($hash);
das hier
$buf = DevIo_SimpleReadWithTimeout($hash, 1);

# If called directly after a select, it should not block.
sub
DevIo_SimpleRead($)
{
  my ($hash) = @_;
  my $buf = DevIo_DoSimpleRead($hash);

  ###########
  # Lets' try again: Some drivers return len(0) on the first read...
  if(defined($buf) && length($buf) == 0) {
    $buf = DevIo_SimpleReadWithTimeout($hash, 1);
  }

  if(!defined($buf) || length($buf) == 0) {
    DevIo_Disconnected($hash);
    return undef;
  }
  return $buf;
}


Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 15 Februar 2015, 12:03:41
Hallo Ralf,

da sich die Zeile in der TcpServerUtils unterhalb von "package main;" befand, habe ich sie in der HM485d.pl auch unter "package main;" eingefügt, steht jetzt in Zeile 174.
Ich habe bisher keine TimeOuts oder andere böse Meldungen im Log.

Zitat
Bei der aktuellen DevIO.pm
"# $Id: DevIo.pm 7099 2014-11-30
Ich habe die 7930 vom 10.02.15., ist aber mit Deinen Angaben identisch.

Gruß
Uwe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 15 Februar 2015, 12:09:15
Zitat von: UweH am 15 Februar 2015, 12:03:41
Ich habe die 7930 vom 10.02.15., ist aber mit Deinen Angaben identisch.

Kannst Du diese Datei mal hier anhängen?

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 15 Februar 2015, 12:11:58
Ist von hier (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/DevIo.pm). Ich meine aber, dass ich die gestern auch über das Update bekommen habe.
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 15 Februar 2015, 12:35:50
Danke für den Link, da kann man mit compare direkt 2 Versionen vergleichen und hat ein Hinweis zu dem entsprechenden Forumsbeitrag.
Diese Lösung mit dem nur auskommentieren der Zeile 20 hat aber den Nachteil, daß Du dies beim nächsten Update evtl wieder tun mußt.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 15 Februar 2015, 12:46:00
Da mir dieser Mist mit der DevIo.pm schon zweimal passiert ist, habe ich die jetzt vom Update ausgeschlossen...bis dann eine mal wieder eine andere Datei geändert wird, und dann gar nichts mehr geht...  ::)
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: holzwurm83 am 15 Februar 2015, 17:05:38
Hallo zusammen,


ich würde gerne mein Fhem auch auf den neusten Stand bring. Allerdings habe ich nach dem letzten Totalausfall große bedenken! Habe jetzt auch wieder mein Testsystem am lauen und würde es damit gerne wagen. Könnt ihr mir alle Dateien, die ihr angepasst habt und die ersetzt werden müssen hier hochladen und zur Verfügung stellen?

Danke euch!
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 15 Februar 2015, 17:39:59
Hier sind die Dateien, Folgendes ist geändert: Diese Zeile: "use Errno qw(:POSIX);" (ohne " ") eingefügt in fhem/FHEM/lib/HM485/HM485d.pl unter "package main;", Zeile 174, in fhem/FHEM/DevIo.pm Zeile 20 mit einem # auskommentiert.

Ich habe dann noch die DevIo.pm vom Update ausgeschlossen:
attr global exclude_from_update DevIo.pm

Gruß
Uwe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: rudolfkoenig am 15 Februar 2015, 19:04:38
Zitatattr global exclude_from_update DevIo.pm

Waere es nicht klueger in HM485d.pl
use Errno qw(:POSIX);

und eine Kopie von TimeNow() einzufuegen?
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: UweH am 15 Februar 2015, 19:27:00
Zitat von: rudolfkoenig am 15 Februar 2015, 19:04:38
Waere es nicht klueger
Mit Sicherheit...wenn man weiß, was man tut  ;)
Aber wenn man sich den ganzen Kram zusammenstoppelt, dann ist man froh, wenn es funktioniert und einem beim nächsten Update nicht wieder alles zusammenstürzt.
Zitatuse Errno qw(:POSIX);
in HM485d.pl einfügen haben wir ja getan, aber
ZitatKopie von TimeNow()
Siehe oben: Wenn man weiß, was man tut. Wo eine Kopie einfügen und was bewirkt das?

Gruß
Uwe
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 15 Februar 2015, 20:05:15
Zitat von: rudolfkoenig am 15 Februar 2015, 19:04:38
und eine Kopie von TimeNow() einzufuegen?
Würden wir gerne machen, aber mit dem TimeNow() ist es nicht getan.
Reicht dieses, oder muß noch mehr rein?

# Forward declarations
#
sub FmtDateTime($);
sub TimeNow();
sub setReadingsVal($$$$);


sub
TimeNow()
{
  return FmtDateTime(time());
}


sub
FmtDateTime($)
{
  my @t = localtime(shift);
  return sprintf("%04d-%02d-%02d %02d:%02d:%02d",
      $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]);
}


sub
setReadingsVal($$$$)
{
  my ($hash,$rname,$val,$ts) = @_;
  $hash->{READINGS}{$rname}{VAL} = $val;
  $hash->{READINGS}{$rname}{TIME} = $ts;
}



Bei use ist bis jetzt dieses drin:

package main;

use strict;
use warnings;
use Time::HiRes qw(gettimeofday);
use Cwd qw(abs_path);
use File::Basename;
use Getopt::Long;
use Pod::Usage;
use bytes;
use Errno qw(:POSIX);

use FindBin;
use lib abs_path("$FindBin::Bin/..");

use Constants;
use Util;
use HM485d::HM485_Protocol;

use vars qw(%selectlist);  # devices which want a "select"
use vars qw(%readyfnlist); # devices which want a "readyfn"
use vars qw($devcount);    # To sort the devices
use vars qw(%defs);        # FHEM device/button definitions
use vars qw(%hash);
use vars qw(%attr);

# Todo: for development only.
use Data::Dumper;


Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: holzwurm83 am 19 Februar 2015, 16:58:10
Zitat von: UweH am 15 Februar 2015, 17:39:59
Hier sind die Dateien, Folgendes ist geändert: Diese Zeile: "use Errno qw(:POSIX);" (ohne " ") eingefügt in fhem/FHEM/lib/HM485/HM485d.pl unter "package main;", Zeile 174, in fhem/FHEM/DevIo.pm Zeile 20 mit einem # auskommentiert.

Ich habe dann noch die DevIo.pm vom Update ausgeschlossen:
attr global exclude_from_update DevIo.pm

Gruß
Uwe

Hallo Uwe,

danke für die Dateien. Bei mir läuft das leider noch nicht ganz. Der Bus startet zwar, bricht allerdings ohne Meldung wieder ab.

2015.02.19 16:53:28 3: HM485_LAN: Connect to HM485d delayed for 2 seconds
2015.02.19 16:53:28 3: HM485_LAN: Start HM485d with command line: ./FHEM/lib/HM485/HM485d/HM485d.pl --serialNumber SGW0123456 --device 192.168.136.22:5000
2015.02.19 16:53:28 3: HM485_LAN: HM485d was started with PID: 90209
2015.02.19 16:53:28 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:29 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:30 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:30 3: Opening HM485_LAN device localhost:2000
2015.02.19 16:53:31 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:32 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:33 3: HM485: RESPONSE TIMEOUT for 0000A374
2015.02.19 16:53:36 3: Can't connect to socket!
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 19 Februar 2015, 18:44:36
Hallo holzwurm83,

versuche es mal mit der HM485d.pl in der Anlage, falls es damit auch nicht funktioniert, kannst Du es auch mal mit der bewährten alten DevIo.pm versuchen.
Dazu mußt Du in der "ServerTools.pm" die Zeile 64 ändern in:
require $pathFHEM . 'DevIo485.pm';

Die DevIo485.pm ist die DevIo.pm vom 2014-05-13. In der DevIo485a.pm habe ich die geänderte bufsize von 256 auf 4096, übernommen.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: holzwurm83 am 20 Februar 2015, 15:14:18
Hallo Ralf,

mit der DevIo485.pm und den nötigen Änderungen hat es nun funktioniert.

Was meinst du mit
ZitatIn der DevIo485a.pm habe ich die geänderte bufsize von 256 auf 4096, übernommen.
brauch ich das, oder wozu dient diese Verbessrung.

Wenn wir nun einen eigene DevIo485.pm haben, ist es dann noch nötig die DevIo.pm vom update auszuschließen?
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 20 Februar 2015, 19:31:28
Zitat von: holzwurm83 am 20 Februar 2015, 15:14:18
Was meinst du mit brauch ich das, oder wozu dient diese Verbessrung.

Wenn wir nun einen eigene DevIo485.pm haben, ist es dann noch nötig die DevIo.pm vom update auszuschließen?
Ich weiß nicht ob diese Änderung für HM wired was bringt, sie dürfte nur das RS485 LAN-Interface betreffen.
Eine Möglichkeit es herauszufinden ist mit der "DevIo485a.pm" zu testen, ob die vergrößerung der bufsize Vorteile oder Nachteile bringt oder ob kein Unterschied feststellbar ist.
Zum testen muß entweder die "DevIo485a.pm" in "DevIo485.pm" umbenannt oder die Änderung in der ServerTools.pm angepasst werden.

Mit der "DevIo485.pm" und der Änderung in der ServerTools.pm brauchst Du "DevIo.pm" nicht vom update auszuschließen. Du brauchst auch nicht die Zeile 20 mit einem # auskommentieren.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: Ralf9 am 24 Februar 2015, 00:05:13
Hallo,

hier ist eine neue Version der "HM485d.pl", damit habe ich den Vorschlag aus Beitrag 27 von rudolfkoenig umgesetzt.
Damit muß in der aktuellen "DevIo.pm" nicht mehr die Zeile 20 mit einem # auskommentiert werden.

Bei denjenigen, bei denen es mit der aktuellen "DevIo.pm" nicht funktioniert, die können es mit der alten  "DevIo485.pm" und der Anpassung der "ServerTools.pm" (siehe Beitrag 31) versuchen.

Gruß Ralf
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: hglaser am 24 Februar 2015, 09:41:33
Hallo Ralf

Sehr schön, das gefällt mir und funktioniert bisher ohne Probleme. Danke sehr.

Gruß Harald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: geri am 24 Februar 2015, 14:10:14
hallo Ralf!

habs heute eingespielt. läuft super mit derzeitig aktuelle "DevIo.pm" und "TcpServerUtils.pm".

danke.

gruss
Gerald
Titel: Antw:Timingprobleme beim HM485d-Server und Fehler bei DevIo.pm und TcpServerUtils.pm
Beitrag von: gevoo am 25 Februar 2015, 15:28:44
Hallo,

ich habe die HM485d.pl von Ralf ( danke dafür) auch mit in die komplette zip aufgenommen.

Gruß gevoo