FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: xenyx am 26 Juli 2013, 11:14:14

Titel: Presence Problem
Beitrag von: xenyx am 26 Juli 2013, 11:14:14
Hallo Zusammen,

habe einige Presence Abfragen gebaut die alle so aufgebaut sind:

define PC_ping PRESENCE lan-ping 192.168.1.100

Funktioniert auch gut für ca. 20 min, danach stürzt wohl das Presence Modul ab mit folgender Fehlermeldung:

2013.07.21 18:04:52 1: Timeout for PRESENCE_DoLocalPingScan reached, terminated process 13523
2013.07.21 18:04:52 2: PRESENCE: PC_ping could not be checked (retrying in 10 seconds)

Weiderholt wird der ping nicht, ab der Fehlermeldung im Log wird nichts mehr gepingt und der Status dementsprechend nicht mehr geändert.
Nach "shutdown restart" funktioniert das Modul wieder für ca. 20 min und stürzt dann wieder ab.

Bitte um Hilfe, bin mit meinem Latein leider am Ende.

Danke schon mal

XenYx
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 26 Juli 2013, 15:25:02
Setz bitte mal bei der Definition PC_ping das Attribut "loglevel" auf 3 und dann poste hier mal das Logfile vom Start von FHEM bis zum eintreten dieses Problems.

Vielen Dank

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: UliM am 26 Juli 2013, 22:16:28
Hi,
laut http://fhem.de/MAINTAINER.txt (//fhem.de/MAINTAINER.txt)
sollten Beiträge zu PRESENCE im Ordner "Unterstützende Dienste" platziert werden.
Habe daher diesen Fred dorthin verschoben.
Gruß, Uli
Titel: Aw: Presence Problem
Beitrag von: xenyx am 29 Juli 2013, 15:03:06
Hallo,

ich weiss zwar nicht was ich nun verändert habe, aber seit dem Neustart nach dem erstem Post kann ich das Problem nicht mehr reproduzieren. D.h. alles läuft nu sauber...
Wenn der Fehler nochmal auftauchen sollte, lass ich das Thema nochmal aufleben.

Danke
Alex
Titel: Aw: Presence Problem
Beitrag von: buchner51 am 16 August 2013, 21:21:40
Hallo,

habe ein Problem mit dem Modul Presence.

Hab folgenden code erstellt:
define HandyThomas PRESENCE lan-ping 192.168.55.18 15 15
define Anwesenheit_HandyThomas notify HandyThomas:present set ez_Licht_Decke on


Aber noch nicht mal die Erkennung funktioniert, steht immer auf "absent"

Fhem läuft auf meiner FB 7390 läuft aber nur als Router als Modem nutze lch eine zweite FB.

Bin der Meinung das das unwichtig ist da das Modul selbst den Ping absetzt.

Update habe ich auch schon durchgeführt.

Was ist mein fehler?????
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 16 August 2013, 23:42:47
stell mal bei HandyThomas das Attribut loglevel auf 3, führe anschließend einen StatusRequest durch und poste mal den Output aus deinem Logfile hier.

Vielen Dank

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: buchner51 am 17 August 2013, 21:26:17
Hallo,
danke für die Hilfe aber wie mache ich das ??

Habs gegooglet ohne erfolg!

Habs mal so probiert:

attr presence loglevel 3

als
antwort kamm:

Please define presence first

Was hat das zu bedeuten ??
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 18 August 2013, 04:49:01
Das du ganz knapp dran warst. Bitte nutze den Befehl:

attr HandyThomas loglevel 3


Die Syntax ist immer "attr <DEFINITION> <ATTRIBUT> <WERT>"

Viele Grüße

Markus
Titel: Aw: Presence Problem
Beitrag von: buchner51 am 18 August 2013, 08:50:25
Hallo,
hier ein auszug aus dem Log

2013.08.17 21:52:58 1: update 12 file(s) have been updated.
2013.08.17 21:52:58 1: update A new version of fhem.pl was installed, 'shutdown restart' is required!
2013.08.17 21:54:51 0: Server shutdown
2013.08.17 21:54:55 1: Including fhem.cfg
2013.08.17 21:54:56 3: telnetPort: port 7072 opened
2013.08.17 21:54:57 3: WEB: port 8083 opened
2013.08.17 21:54:57 3: WEBphone: port 8084 opened
2013.08.17 21:54:57 3: WEBtablet: port 8085 opened
2013.08.17 21:54:58 3: TUL opening EIB device eibd:localhost
2013.08.17 21:54:58 3: TUL device opened
2013.08.17 21:54:59 1: Including ./log/fhem.save
2013.08.17 21:54:59 1: statefile: Undefined value 68
Undefined value 59
Undefined value 0 %
Undefined value 0 %
2013.08.17 21:54:59 1: usb create starting
2013.08.17 21:54:59 1: usb create end
2013.08.17 21:54:59 2: SecurityCheck:  telnetPort has no password/globalpassword attribute.  Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.08.17 21:54:59 0: Server started with 42 defined entities (version Fhem 5.4 (DEVELOPMENT), $Id: fhem.pl 3712 2013-08-16 06:57:44Z rudolfkoenig $, pid 32081)
2013.08.17 22:23:32 2: EIB EIB_0205 off
2013.08.17 22:23:32 2: EIB EIB_0208 off
2013.08.17 22:23:32 2: EIB EIB_0205 off
2013.08.17 22:23:34 2: EIB EIB_0200 off
2013.08.17 22:23:34 2: EIB EIB_0203 off
2013.08.17 22:23:34 2: EIB EIB_0200 off
2013.08.18 02:23:19 2: EIB ez_Licht_Decke on
2013.08.18 02:24:44 2: EIB ez_Licht_Decke off
2013.08.18 07:42:13 3: PRESENCE_DoLocalPingScan: HandyThomas|192.168.55.18|0|4
2013.08.18 07:42:13 3: PRESENCE (HandyThomas) - ping command returned with output:
PING 192.168.55.18 (192.168.55.18): 56 data bytes

2013.08.18 07:42:13 3: PRESENCE_ProcessLocalScan: HandyThomas|0|absent
2013.08.18 07:42:28 3: PRESENCE_DoLocalPingScan: HandyThomas|192.168.55.18|0|4
2013.08.18 07:42:28 3: PRESENCE (HandyThomas) - ping command returned with output:
PING 192.168.55.18 (192.168.55.18): 56 data bytes


es geht dann immmer so weiter egal ob Wlan an oder aus.

Danke
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 18 August 2013, 14:13:04
Das Problem liegt daran, dass FHEM keinen Ping-Befehl ausführen darf. Dies kann an mangelnden Rechten liegen oder anderen Sachen.

Auf welchem System läuft dein FHEM (Hardware, Betriebssystem, Version)?

Unter welchem User läuft dein FHEM? Bitte dazu in der Weboberfläche oben folgenden Befehl eingeben und Enter drücken:


{(getpwuid($<))[0]}


Was kommt an Output, wenn du in der Weboberfäche den folgenden Befehl eintippst und Enter drückst?

{qx(ping -c 1 127.0.0.1)}



Vielen Dank

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: buchner51 am 18 August 2013, 15:06:14
Hallo,

unter dem Befehl:
Zitat{(getpwuid($<))[0]}

kommt: fhem

unter dem Befehl:
Zitat{qx(ping -c 1 127.0.0.1)}

kommt: PING 127.0.0.1 (127.0.0.1): 56 data bytes

Fhem läuft bei mir auf einer FB7390 mit fhem.image von der fhem Seite
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 18 August 2013, 15:32:47
Hi,

bei der FritzBox ist das generelle Problem, dass der User "fhem" keine Rechte hat Ping-Pakete zu versenden. Die Tatsache, dass du bei der Erstellung deiner Definition keinen Fehler erhalten hast, lässt darauf schließen, dass du eine ältere Version von PRESENCE im Einsatz hast, da aktuell in so einem Fall bereits eine entsprechende Fehlermeldung kommen würde.

Damit Ping-Checks auf der FritzBox funktionieren, musst du FHEM anpassen, damit es unter dem User "root" läuft. Eine Anleitung dazu findest du hier (//www.fhemwiki.de/wiki/FritzBox:_fhem_unter_root_starten)

Viele Grüße

Markus
Titel: Aw: Presence Problem
Beitrag von: buchner51 am 18 August 2013, 16:34:33
Super,

es ist schön wenn es funktioniert.

Danke Danke.

Licht schaltet sich an present aber nicht aus absent.

Aber danke.

Ich werde mal weiter suchen.
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 18 August 2013, 20:31:51
Super, um das Abschalten zu erreichen müsstest du einfach ein zweites Notify definieren. Im Gesamten sehe dass dann so aus:


define HandyThomas PRESENCE lan-ping 192.168.55.18 15 15
define Anwesenheit_HandyThomas notify HandyThomas:present set ez_Licht_Decke on
define Abwesenheit_HandyThomas notify HandyThomas:absent set ez_Licht_Decke off

Titel: Aw: Presence Problem
Beitrag von: Tom_S am 22 August 2013, 21:02:25
hallo,

ich betreibe fhem auf einem Windowsrecher. Der läuft sowieso ständig, und es bietet sich an.
Ich weiß das Windows nicht gerne supported wird. presence läuft da leider nicht. Ich habe es mit lan-ping versucht, und das Gerät wird immer als present gemeldet. Ich kann auch irgend eine IP angeben, immer present.
Kann man da was machen oder läuft es nicht? Ich habe es anders gelöst, finde presence aber eleganter.

mfg
Tom_S
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 22 August 2013, 21:35:02
Hallo Tom,

hast du die aktuellste PRESENCE Version via "update"-Befehl im Einsatz? Falls dem so ist, setze bitte das Attribut "verbose" auf 5, führe einen statusRequest durch und poste bitte den Auszug aus dem Log. Solltest du nicht die aktuellste Version im Einsatz haben, bitte das Attribut "loglevel" auf 2 stellen und dann das gleiche Prozedere durchführen.

Da es vor kurzem eine Änderung am Logging gab musst du schauhen welches Attribut bei dir vorhanden ist und es entsprechend setzen.

Vielen Dank

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: Tom_S am 22 August 2013, 22:35:08
hallo Markus,

habe schon die neuste Version im Einsatz.
das log sagt
   2013.08.22 22:29:57 5: PRESENCE_DoLocalPingScan: DBOX_WZ_ping|192.168.115.26|0|4
   2013.08.22 22:29:57 5: PRESENCE (DBOX_WZ_ping) - pingtool returned 1
   2013.08.22 22:29:57 5: PRESENCE_ProcessLocalScan: DBOX_WZ_ping|0|present

meine Lösung sieht derzeit so aus
   define DBOX_WZ_Ping at +*00:01:00 { \
   use Net::Ping;; \
   my $ip = "192.168.115.26";; \
   my $p = Net::Ping->new("tcp", 2, 64);; \
   $p->port_number("80");; \
   if ($p->ping($ip)) { \ .....
mfg
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 26 August 2013, 00:13:35
Hi Tom,

ich verstehe, leider habe ich momentan keine Zeit um das ganze unter Windows zu testen. Kann daher ein wenig dauern.
Welchen Perl-Interpreter in welcher Version verwendest du eigentlich?

Viele Grüße

Markus
Titel: Aw: Presence Problem
Beitrag von: Tom_S am 26 August 2013, 10:39:28
hallo Markus,

hat keine Eile, ich kann es ja testen, wenn du eine Idee hast woran es liegt.
Ich verwende derzeit Activperl V 5.16.2

mfg
Tom
Titel: Aw: Presence Problem
Beitrag von: ChrisD am 26 August 2013, 23:08:01
Hallo Tom,

Ich hatte unter Windows das gleiche Problem dass alle Geräte immer als Present gemeldet wurden. Ich habe die Zeile
my $pingtool = Net::Ping->new("syn");
geändert in

my $pingtool = Net::Ping->new("tcp");
und damit funktioniert es (in Rev. 3749 von 73_presence.pm ist es Zeile 518).

Grüße,

ChrisD
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 26 August 2013, 23:32:50
Hallo zuammen,

ich habe den Vorschlag von ChrisD soeben eingecheckt.

Bitte morgen via "update"-Befehl die neue Version laden, neu starten und ausprobieren.

Vielen Dank

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: ChrisD am 27 August 2013, 10:04:56
Hallo Markus,

Die Änderung hat den Nachteil dass auf dem angepingten Teilnehmer der Echo-Port geöffnet sein muss. Dies ist leider nicht bei allen Geräten der Fall. Auf Windows-Rechnern muss dazu ein zusätzlicher Dienst installiert werden (Simple TCP/IP Sevices).

Ich habe bis jetzt keine Lösung gefunden die mit allen Windows-Versionen funktioniert. Syn-Pings scheinen generell nicht zu gehen. TCP-Pings setzen einen offenen Port voraus. ICMP-Pings funktionieren unter Windows Server 2003 (und wahrscheinlich XP), unter Windows 7 und 8 hatte ich damit aber Probleme, wahrscheinlich wegen Zugriffsrechten, UAC oder Firewall.

Grüße,

ChrisD
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 27 August 2013, 19:38:31
Hallo zusammen,

ich habe heute nochmal eine neue Variante eingebaut, wo der Ping-Befehl auf der Shell ausgewertet wird.

Bitte probiert dieses morgen aus und sagt Bescheid.

Viele Grüße

Markus
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 29 August 2013, 23:36:32
Hattet ihr schon Zeit es auszuprobieren?

Gruß
Markus
Titel: Aw: Presence Problem
Beitrag von: ChrisD am 31 August 2013, 21:12:49
Hallo,

Ich habe die neue Version (3810) auf diversen Windows-Versionen ausprobiert. Sie funktioniert ohne die Probleme der vorherigen Lösung, hat aber 2 kleine Schönheitsfehler:

- eines meiner Systeme ist auf Französisch, hier wurde immer 'absent' gemeldet bis ich die Auswertung in Zeile 525 angepasst habe, dies muss aber für jede Sprache einzeln angepasst werden
- wenn ich statt einer IP-Adresse den Rechnernamen verwende erfolgt der Ping auf verschiedenen System über IPv6 was auch zu 'absent' führt, dies lässt sich durch hinzufügen des Parameters -4 beheben (Zeile 519, $temp = qx(ping -n $count -4 $device);), Nachteil ist dass dann keine Pings mehr auf IPv6-Adressen möglich sind

Allgemein ist noch anzumerken dass PRESENCE unter Windows nur mit der Perl-Version von Cygwin längerfristig funktioniert da bei den anderen Versionen (Activestate und Strawberry) das forken nicht zuverlässig ist.

Grüße,

ChrisD
Titel: Aw: Presence Problem
Beitrag von: Markus Bloch am 01 September 2013, 11:45:17
Hallo Chris,

zu dem Problem mit deinem französischen Windows. Ich habe die Regexp nun nur noch auf /TTL=\d+/ beschränkt. Dieser String ist in allen Sprachversionen identisch und nur im Falle einer Anwesenheit vorhanden. Damit sollte es also nun auch auf deinem französischen Windows laufen.

Den Schalter "-4" habe ich mit eingebracht.

Die neue Version steht ab morgen via "update" zur Verfügung. Alternativ aber auch gerne via SVN.

Viele Grüße

Markus
Titel: Aw: Presence Problem
Beitrag von: Tom_S am 02 September 2013, 09:33:07
hallo Markus,
habe auch getestet. Bei mir funktioniert es ca eine Stunde, dann ändert sich nichts mehr. Warum das so ist hat ChrisD auch schon beantwortet. Ich habe Activperl im Einsatz. Werde mal CygWin probieren.

mfg Tom