Hallo Zusammen,
da ich nicht ständig durch Netzwerk pingen möchte, habe ich mich mit dem SNMP Check versucht und stosse da leider an meine Grenzen
der Router kann snmp:
root@HPDebianNAS:/opt/fhem/log# snmpwalk -v 1 -c public 192.168.2.1 .1.3.6.1.2.1.3.1.1.2
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.2 = Hex-STRING: 00 08 9B C1 B6 EB
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.3 = Hex-STRING: 00 1D EC 01 B6 3C
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.4 = Hex-STRING: 00 14 22 DD 9C 92
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.5 = Hex-STRING: 00 26 2D 05 22 1A
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.6 = Hex-STRING: 00 27 19 FE 47 06
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.16 = Hex-STRING: 00 D0 B8 06 F7 0B
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.17 = Hex-STRING: 00 16 01 C5 F2 76
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.100 = Hex-STRING: 00 21 6A A0 B0 4C
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.101 = Hex-STRING: D0 E7 82 3F E3 83
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.102 = Hex-STRING: 00 25 D3 87 49 43
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.108 = Hex-STRING: 10 9A DD 0B A8 23
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.111 = Hex-STRING: 64 31 50 A4 F9 3F
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.116 = Hex-STRING: 04 46 65 83 22 EA
iso.3.6.1.2.1.3.1.1.2.2.192.168.2.132 = Hex-STRING: 34 51 C9 86 31 3B
leider kommt von function {snmpCheck("192.168.2.1","0x0446658322EA")} 30 30 ausschliesslich ein 0 zurück, obwohl ich über wlan z.b. surfe
2013.10.28 18:16:08 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322EA")}|0
2013.10.28 18:16:08 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322EA")}<
2013.10.28 18:16:08 4: Connection accepted from telnet:127.0.0.1:57552
2013.10.28 18:16:08 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.28 18:16:08 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.28 18:16:08 5: Triggering Samsung (1 changes)
2013.10.28 18:16:08 5: Notify loop for Samsung absent
2013.10.28 18:16:08 4: eventTypes: PRESENCE Samsung absent -> absent
an welcher Stelle kann ich das script in 99_myutils.pm dazu veranlassen, den snmpget output ins log zu schreiben?
package main;
use strict;
use warnings;
use POSIX;
# start with your own functions below this line
use Net::SNMP;
sub
snmpCheck($$)
{
my ($airport,$client)= @_;
my $community = "public";
my $host = 192.168.2.1;
my $oid = ".1.3.6.1.2.1.3.1.1.2";
#my $oid = ".1.3.6.1.2.1.3.1.1.2.25.1.10.0.1";
my ( $session, $error ) = Net::SNMP->session(
-hostname => $host,
-community => $community,
-port => 161,
-version => 1
);
if( !defined($session) ) {
return 0;
return "Can't connect to host $host.";
}
my @snmpoids = ();
my $response = $session->get_next_request($oid);
my @nextid = keys %$response;
while ( $nextid[0] =~ m/^$oid/ ) {
push( @snmpoids, $nextid[0] );
$response = $session->get_next_request( $nextid[0] );
@nextid = keys %$response;
}
if( !defined($response = $session->get_request( @snmpoids ) ) ) {
return 0;
}
foreach my $value (values %$response) {
return 1 if( $value eq $client )
}
return 0;
}
# behind your last function, we need the following
1;
herzliche Grüße
Frank
snmpCheck macht zur zeit nur einen einfachen string vergleich und die snmp lib liefert die hex werte klein geschrieben zurück.
d.h. du musst den string auch im aufruf klein schreiben: snmpCheck("192.168.2.1","0x0446658322ea")
gruss
andre
Hallo Andre,
danke für die rasche Antwort. Das macht Sinn, ich hatte es umgehend implementiert, leider steht das device immernoch auf
state absent 2013-10-28 19:34:58
hier nochmal die definition
function {snmpCheck("192.168.2.1","0x0446658322ea")} 30 30
hat das evtl was mit dem OS zu tun (debian wheezy)? und der snmp perl version v5.14.2?
Herzliche Grüße
Frank
du kannst vor die foreach zeile einLog 3, Dumper $response;
einbauen. und wenn es probleme gibt noch vor das sub ein use Data::Dumper;
gruss
andre
na, jetzt kommt bewegung hinein:
2013.10.28 20:21:20 2: PRESENCE: error while processing device Samsung - unexpected function out put (expected 0 or 1): Undefined subroutine &main::snmpCheck called at (eval 15714) line 1.
nur schient das auch wieder ein anderes temporäres problem zu sein, sollte der dumper jetzt nicht ins logfile schreiben?
irgendetwas ist beim editieren imt deinem file passiert. fhem kann es (vermutlich durch einen syntax fehler) nicht mehr laden.
schau mal ob du im logfile oder wenn du fhem von hand startest auf der console mehr findest.
gruss
andre
Hi Andre,
geht alles wieder, nur der snmpcheck ist unverändert.
NAchdem ich dumper eingefügt hatte machte ich mich vergebens auf die suche des dumps, dann hab ich die erste zeile rausgenommen und die letzten 3 eingefügt.
#Log 5, Dumper $response;
open my $FH, '>', '/opt/fhem/log/dumm.log';
print $FH Dumper $response;
close $FH;
beides ohne erfolg.
Nu hab ich noch schnell snmp auf meinem owrt wlan installiert, leider mit dem selben problem.
Irgendwie bin ich ratlos.....
Herzliche Grüße
Frank
nimm mal wieder meine log zeile und kopier sie jeweils hinter die beiden zeilen mit $session->get_next_request.
gruss
andre
müsste der dumper nicht ins fhem log schreiben?
root@HPDebianNAS:/opt/fhem/log# tail -f fhem-2013-10.log | grep -i samsung
2013.10.28 23:45:49 4: HTTP FHEMWEB:192.168.2.102:55716 GET /fhem&detail=Samsung&detail=Samsung&dev.setSamsung=Samsung&cmd.setSamsung=set&arg.setSamsung=statusRequest&val.setSamsung=
2013.10.28 23:45:49 4: eventTypes: PRESENCE Samsung statusRequest -> statusRequest
2013.10.28 23:45:49 4: HTTP FHEMWEB:192.168.2.102:55717 GET /fhem&detail=Samsung&detail=Samsung&dev.setSamsung=Samsung&cmd.setSamsung=set&arg.setSamsung=statusRequest&val.setSamsung=
2013.10.28 23:45:49 4: eventTypes: PRESENCE Samsung statusRequest -> statusRequest
2013.10.28 23:45:49 4: HTTP FHEMWEB:192.168.2.102:55716 GET /fhem?detail=Samsung
2013.10.28 23:45:49 4: /fhem?detail=Samsung / RL:2231 / text/html; charset=UTF-8 / Content-Encoding: gzip
2013.10.28 23:45:49 4: eventTypes: PRESENCE Samsung absent -> absent
2013.10.28 23:45:49 4: HTTP FHEMWEB:192.168.2.102:55719 GET /fhem?cmd={AttrVal(%22Samsung%22,%22room%22,%22%22)}&XHR=1
2013.10.28 23:45:49 4: /fhem?cmd={AttrVal(%22Samsung%22,%22room%22,%22%22)}&XHR=1 / RL:29 / text/plain; charset=UTF-8 / Content-Encoding: gzip
2013.10.28 23:45:51 4: eventTypes: PRESENCE Samsung absent -> absent
ich hab das set manuell ausgelöst.....
ohne das '| grep'. samsung taucht in den zeilen die der dumper produziert nicht auf.
gruss
andre
ohne grep
2013.10.28 23:59:47 4: Connection accepted from telnet:127.0.0.1:39852
2013.10.28 23:59:47 4: eventTypes: PRESENCE Handy1 online -> online
2013.10.28 23:59:53 4: myVBUSDevice: COLLECTOR: 10.7 (Celsius)
2013.10.28 23:59:53 4: myVBUSDevice: STORAGE: 58.3 (Celsius)
2013.10.28 23:59:53 4: myVBUSDevice: FRESHWATER: 59 (Celsius)
2013.10.28 23:59:53 4: myVBUSDevice: HEATING: 63.5 (Celsius)
2013.10.28 23:59:53 4: myVBUSDevice: THROUGHPUT: 30 (l/min)
2013.10.28 23:59:53 4: myVBUSDevice: VENT_STORAGE: 30 (Umin
2013.10.28 23:59:53 4: myVBUSDevice: VENT_HEATING: 0
2013.10.28 23:59:58 4: Connection accepted from telnet:127.0.0.1:39854
2013.10.28 23:59:58 4: eventTypes: PRESENCE Samsung absent -> absent
weit und breit nichts in Loglevel 4, werd nochmal 5 starten........
die log zeilen sind loglevel 3...
wie genau setzt du den loglevel ?
gruss
andre
auch nicht
PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 00:03:00 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 00:03:00 4: Connection accepted from telnet:127.0.0.1:39953
2013.10.29 00:03:00 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.29 00:03:00 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.29 00:03:00 5: Triggering Samsung (1 changes)
2013.10.29 00:03:00 5: Notify loop for Samsung absent
2013.10.29 00:03:00 4: eventTypes: PRESENCE Samsung absent -> absent
ok, lass mers, ich haks ab als "geht nicht" und versuch mit dem lanping leben zu lernen. snmp wär halt elegant gewesen.
Dank Dir vielmals
Herzliche Grüße
Frank
naja, in der fhem.cfg doch........
attr global verbose 3......
du kannst noch ein log jeweils auf $session und $error einbauen nach dem die snmp sessio aufgemacht wird.
und auch mal '{snmpCheck("192.168.2.1","0x0446658322EA")}' im command feld oder der telnet console aufrufen.
gruss
andre
in der console:
2013.10.29 00:14:16 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 00:14:16 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 00:14:17 4: Connection accepted from telnet:127.0.0.1:40309
2013.10.29 00:14:17 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.29 00:14:17 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.29 00:14:17 5: Triggering Samsung (1 changes)
2013.10.29 00:14:17 5: Notify loop for Samsung absent
2013.10.29 00:14:17 4: eventTypes: PRESENCE Samsung absent -> absent
jetzt kam ein wenig mehr im log an:
2013.10.29 00:20:56 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 00:20:56 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 00:20:56 3: $VAR1 = undef;
2013.10.29 00:20:56 3: $VAR1 = "Unable to resolve the UDP/IPv4 address \"\x{c0}\x{a8}\"";
2013.10.29 00:23:33 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 00:23:33 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 00:23:34 3: $VAR1 = undef;
2013.10.29 00:23:34 3: $VAR1 = "Unable to resolve the UDP/IPv4 address \"\x{c0}\x{a8}\"";
2013.10.29 00:23:34 4: Connection accepted from telnet:127.0.0.1:40595
2013.10.29 00:23:34 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.29 00:23:34 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.29 00:23:34 5: Triggering Samsung (1 changes)
2013.10.29 00:23:34 5: Notify loop for Samsung absent
2013.10.29 00:23:34 4: eventTypes: PRESENCE Samsung absent -> absent
hier nochmal meine 99_myutils, evtzl hab ich da mist gepasted
package main;
use strict;
use warnings;
use POSIX;
# start with your own functions below this line
use Net::SNMP;
use Data::Dumper;
sub
snmpCheck($$)
{
my ($airport,$client)= @_;
my $community = "public";
my $host = 192.168.2.1;
my $oid = ".1.3.6.1.2.1.3.1.1.2";
#my $oid = ".1.3.6.1.2.1.3.1.1.2.25.1.10.0.1";
my ( $session, $error ) = Net::SNMP->session(
-hostname => $host,
-community => $community,
-port => 161,
-version => 1
);
Log 3, Dumper $session;
Log 3, Dumper $error;
if( !defined($session) ) {
return 0;
return "Can't connect to host $host.";
}
my @snmpoids = ();
my $response = $session->get_next_request($oid);
Log 3, Dumper $response;
my @nextid = keys %$response;
while ( $nextid[0] =~ m/^$oid/ ) {
push( @snmpoids, $nextid[0] );
$response = $session->get_next_request( $nextid[0] );
Log 3, Dumper $response;
@nextid = keys %$response;
}
if( !defined($response = $session->get_request( @snmpoids ) ) ) {
return 0;
}
#Log 3, Dumper $response;
foreach my $value (values %$response) {
return 1 if( $value eq $client )
}
return 0;
}
# behind your last function, we need the following
1;
Bitte um verzeihung für evtl dummes anstellen, es sind halt die ersten versuche in fhem.....
HG
Frank
die ip adresse bei $host muss in anführungszeichen.
gruss
andre
Mensch Andre, ::)
das hat den connectionknoten gelöst:
2013.10.29 00:34:41 4: Connection accepted from telnet:127.0.0.1:40946
2013.10.29 00:34:41 5: Cmd: >{PRESENCE_ProcessLocalScan('Handy1|0|present')}<
2013.10.29 00:34:41 5: PRESENCE_ProcessLocalScan: Handy1|0|present
2013.10.29 00:34:41 5: Triggering Handy1 (1 changes)
2013.10.29 00:34:41 5: Notify loop for Handy1 online
2013.10.29 00:34:41 4: eventTypes: PRESENCE Handy1 online -> online
2013.10.29 00:34:46 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 00:34:46 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 00:34:46 3: $VAR1 = bless( {
'_translate' => 255,
'_security' => bless( {
'_error' => undef,
'_community' => 'public',
'_version' => 0
}, 'Net::SNMP::Security::Community' ),
'_transport_argv' => [
'-hostname',
'192.168.2.1',
'-port',
161
],
'_pdu' => undef,
'_callback' => undef,
'_nonblocking' => 0,
'_version' => 0,
'_transport' => bless( {
'_dest_name' => '¡À¨',
'_max_msg_size' => 1472,
'_sock_name' => '',
'_timeout' => '5',
'_error' => undef,
'_sock_hostname' => '',
'_dest_hostname' => '192.168.2.1',
'_socket' => bless( \*Symbol::GEN27224, 'IO::Socket' ),
'_retries' => 1
}, 'Net::SNMP::Transport::IPv4::UDP' ),
'_error' => undef,
'_context_engine_id' => undef,
'_context_name' => undef,
'_delay' => 0,
'_discovery_queue' => [],
'_hostname' => '192.168.2.1'
}, 'Net::SNMP' );
2013.10.29 00:34:46 3: $VAR1 = '';
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.2' => '0x00089bc1b6eb'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.3' => '0x001dec01b63c'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.4' => '0x001422dd9c92'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.5' => '0x00262d05221a'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.6' => '0x002719fe4706'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.16' => '0x00d0b806f70b'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.17' => '0x001601c5f276'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.100' => '0x00216aa0b04c'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.101' => '0xd0e7823fe383'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.102' => '0x0025d3874943'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.108' => '0x109add0ba823'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.111' => '0x643150a4f93f'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.116' => '0x0446658322ea'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.132' => '0x3451c986313b'
};
2013.10.29 00:34:46 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.3.2.192.168.2.2' => '192.168.2.2'
};
2013.10.29 00:34:46 4: Connection accepted from telnet:127.0.0.1:40947
2013.10.29 00:34:46 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.29 00:34:46 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.29 00:34:46 5: Triggering Samsung (1 changes)
2013.10.29 00:34:46 5: Notify loop for Samsung absent
2013.10.29 00:34:46 4: eventTypes: PRESENCE Samsung absent -> absent
^C
frag mich nur, warum das nicht umschaltet?
HG
Frank
den rest reparieren wie später... ich muss jetzt etwas schlafen :)
gute nacht
andre
Ganz herzlichen Dank bis hierher und bis bald.
HG
Frank
der nächste schritt wäre vor die foreach zeile einLog 3, "foreach";
,nach der foreach zeile ein Log 3, ">$value< >$client<";
und vor das letzte 'return 0' am ende einLog 3, "nicht gefunden";
einzubauen.
gruss
andre
Hi Andre,
ich hab gestern alles rausgehauen und abgestellt, weil nebenbei auch der ping gut am akku zog.
Eben wieder alles rein mit deinen Vorschlägen, aber das log hat nur folgenden output
2013.10.29 21:16:20 5: PRESENCE_DoLocalFunctionScan: Samsung|{snmpCheck("192.168.2.1","0x0446658322ea")}|0
2013.10.29 21:16:20 5: Cmd: >{snmpCheck("192.168.2.1","0x0446658322ea")}<
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.2' => '0x00089bc1b6eb'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.3' => '0x001dec01b63c'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.4' => '0x001422dd9c92'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.5' => '0x00262d05221a'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.6' => '0x002719fe4706'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.16' => '0x00d0b806f70b'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.17' => '0x001601c5f276'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.100' => '0x00216aa0b04c'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.101' => '0xd0e7823fe383'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.102' => '0x0025d3874943'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.103' => '0x109add1dfcd1'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.104' => '0x7cc5374738c5'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.108' => '0x109add0ba823'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.111' => '0x643150a4f93f'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.116' => '0x0446658322ea'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.130' => '0x00262d05221a'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.2.2.192.168.2.132' => '0x3451c986313b'
};
2013.10.29 21:16:20 3: $VAR1 = {
'.1.3.6.1.2.1.3.1.1.3.2.192.168.2.2' => '192.168.2.2'
};
2013.10.29 21:16:20 4: Connection accepted from telnet:127.0.0.1:39388
2013.10.29 21:16:20 5: Cmd: >{PRESENCE_ProcessLocalScan('Samsung|0|absent')}<
2013.10.29 21:16:20 5: PRESENCE_ProcessLocalScan: Samsung|0|absent
2013.10.29 21:16:20 5: Triggering Samsung (1 changes)
2013.10.29 21:16:20 5: Notify loop for Samsung absent
2013.10.29 21:16:20 4: eventTypes: PRESENCE Samsung absent -> absent
Im Anhang nochmal zur sicherheit meine 99_myutils.pm
herzliche grüße
PS: ping ist nicht wirklich ne alternative
ok, mit Anhang...
wobei ich jetzt da wohl nen fehler drin hab....
syntax error at ./FHEM/99_myUtils.pm line 11, near ") {" Can't use global @_ in "my" at ./FHEM/99_myUtils.pm line 12, near "= @_" Can't use global @_ in "my" at ./FHEM/99_myUtils.pm line 19, near "= @_" syntax error at ./FHEM/99_myUtils.pm line 64, near "}"
ok, das kommt dann vom fehlenden sub
Andre hat das Problem fixen können, ganz herzlichen Dank dafür.
Ich habs jetzt etwa 2 Tage am Laufen und keine Fehler drin.
Wo jetzt genau das Problem lag ist uns noch nicht ganz klar, anbei das Codeschnipsel.
Herzliche Grüße
Frank
Sorry,
passt jetzt eigentlich nicht hierher, aber bin langsam am verzweifeln...
Könnte mich bitte jemand erhellen, wie ich eine "gängige" Mac-Adresse (z.B. 28:E1:4D:92:AD:D9) in das für die Abfrage notwendige Format (beginnend mit 0x) umrechnen kann? Hab schon Unzähliges probiert, komme aber auf keinen grünen Zweig..
einfach alles aneinander hängen und kleinbuchstaben verwenden...
28:E1:4D:92:AD:D9 -> 0x28e14d92add9
gruss
andre
Danke!
Dann war meine Vermutung zwar richtig, es funktioniert aber trotzdem nicht zuverlässig. Wenn ich mir das FHEM-Logfile ansehe, finde ich jede Menge Mac-Adressen der Geräte, die sich in meinem Netzwerk befinden (kabelgebunden und per WLan angebunden) und vom Script entsprechend erkannt bzw. abgefragt werden. Die Mac-Adresse meines iPhones jedoch, welches ebenfalls verbunden ist, wird trotzdem nicht angezeigt, obwohl es definitiv per WLan verbunden ist. Könnte es sein, dass es daran liegt, dass der AirPort Extreme zwar für das WLan zuständig ist, die DHCP-Funktion aber durch meinen Router (Fritzbox) übernommen wird? Jedenfalls sagt selbst das AirPort-Dienstprogramm, dass das iPhone mit der entsprechenden Mac-Adresse über den AirPort Extreme verbunden ist.
wenn es mit mac adresse im aurpot diensprogramm auftaut sollte es auch per snmp sichtbar sein.
gruss
andre
richtig vermutet, Jörg.
Der check geht auf die adressen und die sind im dhcp Server eingetragen.
Deine Airport stellt lediglich das wlan zur verfügung.
Wenn dein dhcp server (schätze der läuft auf dem router) snmp kann, dann solltest du die abfrage dahin machen.
Herzliche GRüße
Frank
Hi Frank,
vielen Dank für den Hinweis. Naja dann muss wohl Freetz mit entsprechender SNMP-Option auf meine Fritzbox wandern, damit das klappt. :)
Kurzes Update: ES FUNKTIONIERT!
Auf der Fritzbox läuft jetzt Freetz mit dem installierten Net-SNMP Paket, welches schließlich noch über die Freetz-Oberfläche gestartet werden musste. Der snmpCheck zeigt jetzt direkt auf die IP der Fritzbox, welche die Anfrage jetzt augenscheinlich korrekt verarbeitet, so dass mein iPhone erkannt wird, welches per WLan am Airport Extreme hängt. Vielen Dank nochmal für den Tipp Frank, ohne den ich es sicher nicht geschafft hätte!
Grüße
Jörg
Herzlichen Glückwunsch Jörg!
Viele Grüße
Frank
Hallo zusammen
ich habe mir nun die Anleitung und das File auf mein fhem gemacht, leider bekomme ich immer nur die 0 geliefert.
Versuche es schon den 2. Tag mit den diversen Anleitungen, im Prinzip immer das gleiche!
Eine prinzipielle Frage dazu, liefern alle snmp bei den gleichen Abfragecodes my $oid = ".1.3.6.1.2.1.3.1.1.2"; immer die gleichen Ergebnisse? Oder ist die Nummer/Zahl auf den verschiedenen Geräten anders?
mein dhcp sitz auf einer NanoStation.
danke
Robert