Probleme mit DevIo.pm

Begonnen von Ralf9, 31 Januar 2015, 12:05:45

Vorheriges Thema - Nächstes Thema

Ralf9

Hallo,

Mit der DevIo.pm vom 2014-11-30 funktioniert der HM485d Server nicht mehr. Mit einer älteren DevIo.pm vom  2014-05-13 funktioniert es.


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.



Das Problem ist wahrscheinlich beim TimeNow() Aufruf.

sub
DevIo_setStates($$)
{
  my ($hash, $val) = @_;
  $hash->{STATE} = $val;
  setReadingsVal($hash, "state", $val, TimeNow());
}


Mit main::TimeNow() wird es vermutlich funktionieren, dies ist aber wahrscheinlich nicht die sauberste Lösung.

Muß in der ServerTools.pm oder HM485d.pl ein "use" eingetragen werden?

Ich würde gerne versuchen es zu verstehen. Wirkt ein "use .." in der HM485d.pl durch die "require .." auch in der ServerTools.pm und DevIo.pm?

Die DevIo Routinen werden von der ServerTools.pm und HM485d.pl aufgerufen.
In der  ServerTools.pm steht:
require $pathFHEM . 'DevIo.pm';

In der HM485d.pl steht:
require $pathFHEM . 'ServerTools.pm';

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

rudolfkoenig

Die FHEM/*.pm Module sind nicht fuer eine Verwendung aus anderen .pl Dateien "optimiert". D.h. im Zweifel muss man im HM485d.pl die Funktionen, die in fhem.pl implementiert sind werden, auch nachbauen. In diesem Fall ist das TimeNow().