FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: teufelchen am 27 Dezember 2015, 14:13:05

Titel: Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 27 Dezember 2015, 14:13:05
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 (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

Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Wernieman am 27 Dezember 2015, 14:53:03
Probiere erstmal Deine routine anders zu bennenen, z.B. in my_snmpCheck
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 27 Dezember 2015, 17:14:54
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.

Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: dascrip am 27 Dezember 2015, 17:50:24
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 (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
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 27 Dezember 2015, 18:38:55
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.
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Tedious am 27 Dezember 2015, 20:03:21
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..
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 27 Dezember 2015, 20:21:48
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)
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 27 Dezember 2015, 22:45:15
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.

Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 28 Dezember 2015, 15:45:15
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?
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 28 Dezember 2015, 18:20:12
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 (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)
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: betateilchen am 28 Dezember 2015, 19:09:22
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...
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 28 Dezember 2015, 19:23:42
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.
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 28 Dezember 2015, 21:55:54
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
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 28 Dezember 2015, 22:24:29
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)
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 29 Dezember 2015, 21:24:34
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.
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Puschel74 am 29 Dezember 2015, 22:23:06
Zitat von: teufelchen am 29 Dezember 2015, 21:24:34
funktioniert es nicht.
*grumpf*
Funktioniert es nicht ist zu wenig - darauf kann keine Hilfe aufbauen.
Wie ich schon geschrieben habe - unsere Fernseher, Laptops, Tablets, PC`s lassen sich damit perfekt abfragen.
Die Smartphones wehren sich da sie im Schlafmodus das WLAN abschalten - das darf auch gerne so bleiben da ich das weiß und darauf keine Abwesenheit abfrage.

Du schreibst das auch dein Tablet nicht abgefragt werden kann?
Model?
Betriebssystem?

Meine 3 Tablet funktionieren mit WebviewControl einwandfrei.
Die Steckdosen werden per notify ein-/ausgeschalten und der Rest geht auch.
Ich weiß nicht wo ich noch ansetzen kann um dir zu helfen.
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 30 Dezember 2015, 08:05:23
Ich fasse mal kurz zusammen.

Ich versuchte mit
define Handy4 PRESENCE lan-ping 192.168.178.107 30 300
attr Handy4 devStateIcon ONLINE:WLAN_Status.1 OFFLINE:WLAN_Status.
attr Handy4 event-on-change-reading state
attr Handy4 room Anwesenheit

die Anwesenheit zu erkennen.
Ich habe alle bei mir im Netz vorhandenen Geräte mit deren IP versucht in FHEM zu erkennen. Von Samsung S4 Handy, Samsung Tab 10.5, Sony Handy Z1 und Z5, Laptop mit Win 7 und Win 10, Samsung TV und Humax Receiver.
Keines der Geräte wird erkannt und auch kein Eintrag hierzu im Log erstellt.
In der Raspberry Konsole kann ich diese Geräte anpingen.

pi@raspberrypi:~ $ sudo ping 192.168.178.107
PING 192.168.178.107 (192.168.178.107) 56(84) bytes of data.
64 bytes from 192.168.178.107: icmp_seq=1 ttl=64 time=68.1 ms
64 bytes from 192.168.178.107: icmp_seq=2 ttl=64 time=102 ms
64 bytes from 192.168.178.107: icmp_seq=3 ttl=64 time=129 ms
64 bytes from 192.168.178.107: icmp_seq=4 ttl=64 time=161 ms
64 bytes from 192.168.178.107: icmp_seq=5 ttl=64 time=113 ms
64 bytes from 192.168.178.107: icmp_seq=6 ttl=64 time=96.2 ms



FHEM läuft aus einen Raspberry Pi mit CUL433 welcher auch korrekt die Intertechno Steckdosen schaltet und erkennt.
Sowohl auf FHEM und Raspberry ist Update durchgeführt.

PS: Muss noch was zusätzlich installiert werden damit Ping funktioniert?
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Tedious am 30 Dezember 2015, 10:02:28
Hat denn dein User unter dem FHEM läuft auch die Rechte einen Ping zu senden??
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 30 Dezember 2015, 17:12:23
Hallo,

folgende Rechte sind im Verzeichnis gesetzt.

pi@raspberrypi:/opt/fhem $ ls -l
insgesamt 352
-rw-rw-rw-  1 pi   pi      125737 Dez 27 11:03 CHANGED
-rw-rw-rw-  1 fhem dialout  33126 Nov 15 12:35 configDB.pm
drwxrwxrwx 39 fhem dialout   4096 Dez 27 01:26 contrib
drwxrwxrwx  3 fhem dialout   4096 Dez 27 01:26 demolog
drwxrwxrwx  4 fhem dialout   4096 Dez 27 01:26 docs
drwxrwxrwx  5 fhem dialout  20480 Dez 27 11:41 FHEM
-rw-rw-rw-  1 fhem dialout   2722 Dez 28 16:50 fhem.cfg
-rw-rw-rw-  1 fhem dialout  15692 Nov 15 12:35 fhem.cfg.demo
-rwxrwxrwx  1 fhem dialout 119004 Dez 27 01:35 fhem.pl
drwxrwxrwx  2 fhem dialout   4096 Dez 27 11:19 log
-rw-rw-rw-  1 fhem dialout    935 Nov 15 12:35 README_DEMO.txt
drwxrwxrwx  4 pi   pi        4096 Dez 28 09:02 restoreDir
drwxrwxrwx  2 pi   pi        4096 Dez 27 01:35 unused
drwxrwxrwx  8 fhem dialout   4096 Dez 27 01:26 www
pi@raspberrypi:/opt/fhem $
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Markus Bloch am 02 Januar 2016, 11:38:41
Gib mal bitte in der FHEM-Kommandozeile im Frontend den Befehl "version" ein und poste den Output.

Desweiteren noch die Definition von evtl. Telnet-Instanzen aus deiner fhem.cfg.

Vielen Dank

Gruß
Markus
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: Markus Bloch am 02 Januar 2016, 15:30:34
Hallo zusammen,

Rudi hat soeben eine neue Version des Moduls Blocking.pm eingecheckt, welches dieses Problem behebt.

Ab morgen gibts dieses via update. Damit funktioniert PRESENCE wieder, auch wenn man im telnet ein Passwort gesetzt hat.

Viele Grüße

Markus
Titel: Antw:Umzug auf Raspberry von Fritzbox - Presence funtioniert nicht
Beitrag von: teufelchen am 05 Januar 2016, 22:36:28
Habe Raspberry und FHEM geupdatet,
FHEM config nochmal neu von vorne angefangen,
die Rechte überprüft.

Und mehrmals neu gebootet.

Jetzt funktioniert es.

DANKE für Eure Hilfe