Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht

Begonnen von teufelchen, 27 Dezember 2015, 14:13:05

Vorheriges Thema - Nächstes Thema

teufelchen

Hallo,

da die Zeiten der offenen Fritzbox vorbei sind, habe ich zu Weihnachten einen Raspberry bekommen.

Habe auch schon geschafft FHEM zum laufen zu bringen und den CUL anzulernen und die ersten Steckdosen zu schalten.

Nun versuche ich verzweifelt die Anwesenheit der Handys über WLAN zu realisieren.

Bei meiner Suche bin ich auf diese Anleitung gestoßen: http://www.fhemwiki.de/wiki/Anwesenheitserkennung#Beispiel_DHCP_.C3.BCberwachung_auf_Airport_Basestation
Die Installation von SNMP scheint funktioniert zu haben (cpan install use Net::SNMP). Wie kann ich dies eigentlich testen?
Die 99_myUtils.pl habe ich erstellt und sieht wie folgt nun aus:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.


use Net::SNMP;
sub
snmpCheck($$)
{
  my ($airport,$client)= @_;

  my $community = "public";
  my $host = $airport;
  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 && $nextid[0] && $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;
}

1;


Beim Start schreibt er in die Logdatei jedoch folgenden Fehler:
PERL WARNING: Subroutine snmpCheck redefined at ./FHEM/99_myUtils.pm

Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

Wernieman

Probiere erstmal Deine routine anders zu bennenen, z.B. in my_snmpCheck
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

teufelchen

Hallo,

ich habe leider nicht wirklich Ahnung davon. Habe es nur kopiert vom Beispiel.
Wenn ich umbenenne bekomme ich immer folgende Fehlermeldung, egal welchen Namen ich vergebe.
PERL WARNING: Subroutine my_snmpCheck redefined at ./FHEM/99_myUtils.pm line 25.

Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

dascrip

Hallo,

warum SNMP? Warum nicht über die MAC-Adresse gehen?

Schau Dir mal diesen Artikel an:

http://heinz-otto.blogspot.de/2015/07/die-zeiten-andern-sich.html

Ist ganz gut beschrieben und funktioniert (bis auf eine kleine Ausnahme, die ich hoffentlich mit Hilfe des Forums gelöst bekomme ;->)

Gruß

Dominik

Puschel74

Zitat von: teufelchen am 27 Dezember 2015, 17:14:54
Wenn ich umbenenne bekomme ich immer folgende Fehlermeldung, egal welchen Namen ich vergebe.
PERL WARNING: Subroutine my_snmpCheck redefined at ./FHEM/99_myUtils.pm line 25.
Ihr wisst aber das das nur eine Warnung ist und keine Fehlermeldung  ???
Es zeigt im FHEM-Logfile einfach nur an das die Subroutine my_snmpCheck in der 99_myUtils.pm eingelesen wurde - redefined.
Diese Meldung lässt sich auch mit einem simplen reload 99_myUtilserzeugen.

Zitat von: teufelchen am 27 Dezember 2015, 17:14:54
ich habe leider nicht wirklich Ahnung davon. Habe es nur kopiert vom Beispiel.
Einfach nur kopieren ohne zu wissen was man macht ist nie gut.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Tedious

Warum so komplex?



#Abfrage Presence Handy
#Sascha
define Sascha_Handy PRESENCE lan-ping 192.168.192.71 10 300
attr Sascha_Handy alias Handy Sascha
attr Sascha_Handy devStateIcon ONLINE:WLAN_Status.1 OFFLINE:WLAN_Status.0
attr Sascha_Handy event-on-change-reading state
attr Sascha_Handy eventMap present:ONLINE absent:OFFLINE
attr Sascha_Handy group Status
attr Sascha_Handy icon it_smartphone
attr Sascha_Handy room Resident


Einfach und Funktionell..
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Puschel74

Zitat von: Tedious am 27 Dezember 2015, 20:03:21
Warum so komplex?
Hab ich mich auch gefragt  ;D
Aber die Frage von teufelchen war ja nicht wie es einfacher gehen würde  8)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

teufelchen

Hallo,

mein erster erfolgloser Versuch war mit folgenden Code:
define Handy PRESENCE lan-ping 192.168.178.107 30 300
attr Handy event-on-change-reading state
attr Handy room Anwesenheit


Dann habe ich zum suchen angefangen und bin zu der Lösung mit snmp gekommen.
Die aber auch nicht funktioniert.

PS: Ist ein Samsung S4 bzw. ein Samsung Tab 10.5 mit jeweils WLAN in Standby an.

Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

teufelchen

Habe jetzt mit Presence lan-ping alle Geräte die ich habe versucht zu erkennen.
Weder Receiver, Tablet, Drucker noch Laptop sind bei Presence am Raspberry erkannt.
Wenn ich in der FritzBock nachsehe, sind diese alle im Heimnetz als aktiv gekennzeichnet.

Hat jemand eine Idee wie ich systematisch den Fehler finden kann?
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

Puschel74

Fernseher, Laptop, Tablet lassen sich bei mir wunderbar so abfragen.
define Mein_Laptop lan-ping 192.168.2.20 60 180

Ok, unsere Smartphones wehren sich etwas da sie sich immer schlafen legen und daher per lan-ping nicht erreichbar sind aber damit kann ich leben.

Die (deutsche) commandref zu PRESENCE kennst du?
http://fhem.de/commandref_DE.html#PRESENCE
Was steht im Logfile?
Wie sieht das define aus?
(Warum wird mein angepinnter Beitrag im Anfängerbereich nicht gelesen? Das würde genau diese Nachfragen ersparen)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

Zitat von: Puschel74 am 28 Dezember 2015, 18:20:12
(Warum wird mein angepinnter Beitrag im Anfängerbereich nicht gelesen? Das würde genau diese Nachfragen ersparen)

weil man, je nachdem wie man das Forum bzw. ein Unterforum betritt, überhaupt keine angepinnten Beiträge zu sehen bekommt...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Zitat von: betateilchen am 28 Dezember 2015, 19:09:22
weil man, je nachdem wie man das Forum bzw. ein Unterforum betritt, überhaupt keine angepinnten Beiträge zu sehen bekommt...
Äh ok, danke, das wusste ich nicht.
Wenn ich auf Anfängerfragen klicke seh ich erst die angepinnten Beiträge und dann den Rest der Beiträge - so auch in den anderen Unterforen mit angepinnten Beiträgen.
Aber wenn es auch eine Möglichkeit gibt überhaupt keine angepinnten Beiträge zum sehen zu bekommen dann ziehe ich den Satz zurück.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

teufelchen

Hallo Puschel,

ich habe im für die Variante mit snmp folgendes verwendet:
define Handy1 PRESENCE function {snmpCheck("192.168.178.100","40F308E1B004")} 30 30
attr Handy1 event-on-change-reading state
attr Handy1 room Anwesenheit

IP vom Raspberry: 192.168.178.100
Mac vom Handy: 40:F3:08:E1:B0:04

Für die Variante mit lan-ping:
define Handy2PRESENCE lan-ping 192.168.178.34
attr Handy2 event-on-change-reading state
attr Handy2 room Anwesenheit


Im Log ist eigentlich gar nichts zu sehen
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD

Puschel74

#13
Hier
define Handy2PRESENCE lan-ping 192.168.178.34
fallen mir 2 Sachen auf:
a) das fehlende Leerzeichen zwischen Handy2 und PRESENCE - kann ein c&p-Fehler sein oder wurde so nicht in FHEMWEB eingegeben sonst hätte das sofort einen Fehler ausgeworfen
b) fehlen die Zeitangaben für absent und present
Zu b) - ich hab jetzt nicht in der commandref geschaut ob das auch ohne geht.

Edith: b) scheint auch ohne zu gehen da dann default-Werte genommen werden.
Bleibt noch a)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

teufelchen

Hallo Puschel,

a) das fehlende Leerzeichen war ein Fehler beim kopieren.
b) auch mit define Handy2 PRESENCE lan-ping 192.168.178.34 30 300 funktioniert es nicht.
Raspberry Pi 3
CUL433: V 1.26.05 a-culfw Build: 311 (2018-12-09_19-12-53) CUL433 (F-Band: 433MHz)
freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB
Debmatic mit RPI-RF-MOD