Hauptmenü

PRESENCE unter Win

Begonnen von Tom_S, 13 Mai 2013, 09:59:13

Vorheriges Thema - Nächstes Thema

Tom_S

hallo,

um festzustellen, ob Geräte die am LAN hängen angeschaltet sind benutze ich folgenden Code:
  define DBOX_WZ dummy
  attr DBOX_WZ room Wohnzimmer
  attr DBOX_WZ setList on off
  define FileLog_DBOX_WZ FileLog ./log/DBOX_WZ.log DBOX_WZ
  attr FileLog_DBOX_WZ logtype text
  attr FileLog_DBOX_WZ room Wohnzimmer
  define DBOX_WZ_Ping at +*00:01:00 { \
  use Net::Ping;; \
  my $ip = "10.209.115.26";; \
  my $p = Net::Ping->new("tcp", 2, 64);; \
  $p->port_number("80");; \
  if ($p->ping($ip)) { \
  if ( Value("DBOX_WZ") eq "off" ) { \
  fhem("set DBOX_WZ on");; }} \
  else { \
  if ( Value("DBOX_WZ") eq "on" ) { \
  fhem("set DBOX_WZ off");; }}}

das funktioniert auch soweit. Ich wollte jetzt einfach mal PRESENCE probieren

  define DBOX_WZ1 PRESENCE 10.209.115.26 60 60

ich erhalte immer ein "present", egal ob an oder aus. Es ist auch egal ob die IP überhaupt vergeben ist.
Mein FHEM läuft mit Activperl unter Windows. Kann es sein das es daran liegt?

Im Code habe ich das gefunden:


if($^O =~ m/(Win|cygwin)/)
    {
   eval "require Net::Ping;";
   my $pingtool = Net::Ping->new("syn");

   if($pingtool)
   {
       $retcode = $pingtool->ping($device, 5);
       
       Log GetLogLevel($name, 5), "PRESENCE ($name) - pingtool returned $retcode";
       
       $return = "$name|$local|".($retcode ? "present" : "absent");
   }

sollte es unter Windows funktionieren oder nicht?

mfg
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus