Hauptmenü

Presence

Begonnen von Talkabout, 28 Mai 2015, 20:06:53

Vorheriges Thema - Nächstes Thema

Charity

@Talkabout : welche Codezeilen? Jene die in der 99_myUtil die Funktion beinhalten ?

Talkabout

@Charity

Jep, genau die. Ich könnte mir vorstellen, dass da was beim Copy&Paste schief gelaufen ist.

Gruss

Charity

@Talkabout : Danke. Das war jetzt gar nicht so einfach :-)
Ascii ist UTF-8 als UTF-8 hab ich das File nun gespeichert und mit WinSCP wieder hochgeladen. Doch auch da hat WinSCP ein wenig reingespuckt.
Und das File in Binary hochgeladen. Nachdem ich nun den Mode auf Text umgestellt habe kommt die Meldung nicht mehr im Log.

Leider bleibt das Handy aber immer noch offline.

Kann ich das irgendwie testen ? den in der Linux Command kommt ein ergebnis retour

Talkabout

@Charity

Kannst DU mal bitte in Deinen Utils den Aufruf wegloggen:

Log3 "command", 3, $command;

vor die Zeile mit "my $result..." einfügen, dann sollte beim Aufruf ein Log-Eintrag entstehen, der den abgeschickten Befehl anzeigt.

Gruss

miggi

Zitat von: Charity am 07 Juni 2015, 20:35:40
@talkabout: ja, nur füllen diese die ganze Zeile. Ich hab nicht alle eingefügt.
@miggi: Leider hat das entfernen der ersten Zeile auch nichts gebracht
Schreib mal anstatt dem root ein ALL rein.  Schau ob das dann so klappt.

Gesendet von meinem OnePlus One mit Tapatalk.


Charity

Erstmal ein großes Danke für eure Unterstützung !

@Talkabout : der Log sieht nun so aus

2015.06.07 22:01:04 3: sudo /usr/bin/arp-scan 192.168.0.0/24 | grep -i "74:E2:8C:4D:0E:66"


@miggi : der Eintrag in der sudoers sieht nun so aus

fhem    ALL = (ALL) NOPASSWD:/usr/bin/arp-scan


Mit dem gleichen Ergebnis -> immer noch offline

miggi

Zitat von: Charity am 07 Juni 2015, 22:03:30
Erstmal ein großes Danke für eure Unterstützung !

@Talkabout : der Log sieht nun so aus

2015.06.07 22:01:04 3: sudo /usr/bin/arp-scan 192.168.0.0/24 | grep -i "74:E2:8C:4D:0E:66"


@miggi : der Eintrag in der sudoers sieht nun so aus

fhem    ALL = (ALL) NOPASSWD:/usr/bin/arp-scan


Mit dem gleichen Ergebnis -> immer noch offline
Komisch hab das genauso drin. 
Hast du die Datei mit Hilfe von dem Befehl visudo geändert?

Gesendet von meinem OnePlus One mit Tapatalk.


Charity

@miggi : Nein, im Texteditor von WinSCP.

Aber ich werde es gleich mal mit visudo nochmal machen

Talkabout

@Charity:

Eigentlich sollte das "-i" die Groß-/Kleinschreibung ignorieren, aber probiere mal die MAC-Adresse mit Kleinbuchstaben an die Funktion zu übergeben.

Gruss

miggi

Zitat von: Talkabout am 28 Mai 2015, 20:06:53
Hallo zusammen,

ich habe schon seid längerem nach einer Lösung gesucht, wie ich mein Handy (Windows Phone) für das Presence-Modul verwenden kann. Bluetooth kam nicht in Frage, zu geringe Reichweite. Abfrage über Ping funktionierte nicht, da, wenn das Handy in Standby ging, es auch auf einen Ping nicht reagierte. Nach etwas Suchen kam ich dann aber doch auf eine funktionierende Lösung: ARP SCAN

http://de.wikipedia.org/wiki/Address_Resolution_Protocol

Über dieses Protokoll war es mir möglich, auch von "schlafenden" Devices eine Antwort zu erhalten. Damit das Ganze funktioniert, bedarf es unter Unix (Debian) des Programms "arp-scan". Dieses kann über "apt-get" installiert werden. Da der Befehl per "sudo" ausgeführt werden muss, bedarf es noch eines Eintrags in /etc/sudoers.

Anschliessend noch eine kleine Funktion in der myUtils:

sub
PresenceByMacAddress($)
{
my ($macAddress) = @_;
        my $command      = "sudo /usr/bin/arp-scan 192.168.20.0/24 | grep -i \"" . $macAddress . "\"";
my $result       = qx/$command/;
        if ($result ne "") {
        return 1;
        }
        return 0;
}


Die IP-Range (192.168.20.0) müsst Ihr durch Eure IP-Range ersetzen. In den meisten Fällen 192.168.1.0 oder 192.168.254.0. Um rauszufinden, welche IP-Range Ihr habt, einfach mal nachschauen, welche IP-Adresse Eure Geräte zugewiesen bekommen haben, und die letzte Nummer durch 0 ersetzen.

Und die entsprechenden "PRESENCE"-Definitionen in der fhem.cfg:

define Handy1 PRESENCE function {PresenceByMacAddress("xx:xx:xx:xx:xx:xx")} 60 60
define Handy2 PRESENCE function {PresenceByMacAddress("xx:xx:xx:xx:xx:xx")} 60 60


Die Zeilen mit "xx" jeweils mit der Hardware-Adresse (MAC-Adresse) des jeweiligen Gerätes ersetzen.

Damit funktioniert nun auch die Anwesenheitserkennung bei mir. Vielleicht kann damit ja jemand auch was anfangen.

Gruss
Hallo,

Kurze Frage ist es bei dir auch so,  dass die Geräte immer im regelmäßigem Abstand anwesend und abwesend ist,  obwohl das Handy immer im wlan ist?

Im Screenshot sieht man es auch. 


Gesendet von meinem OnePlus One mit Tapatalk.


Talkabout

@miggi

Ja, es kommt vor, dass das Handy als absent angezeigt wird. Woran es genau liegt weiss ich nicht, aber es könnte sein, dass die ARP-Listen zu dem Zeitpunkt aktualisiert werden.

Man kann das umgehen, indem man beim Presence-Modul den zweiten Zahlenwert erhöht, damit erst beim 2. oder 3. Check als abwesend gekennzeichnet wird.

Gruss

miggi



Zitat von: Talkabout am 07 Juni 2015, 22:23:18
@miggi

Ja, es kommt vor, dass das Handy als absent angezeigt wird. Woran es genau liegt weiss ich nicht, aber es könnte sein, dass die ARP-Listen zu dem Zeitpunkt aktualisiert werden.

Man kann das umgehen, indem man beim Presence-Modul den zweiten Zahlenwert erhöht, damit erst beim 2. oder 3. Check als abwesend gekennzeichnet wird.

Gruss

Okey alles klar.
Der erste wert ist die Zeit in Sekunden in der nachgeschaut wird richtig?
Somit ist 60 60
Das jede Minute nachgesehen wird und jede Minute der Wert sich ändert oder?

Gesendet von meinem OnePlus One mit Tapatalk.


Talkabout

@miggi

richtig, der 2 Wert gibt an nach wie viel Zeit sich der Status dann ändert, wenn das Device nicht gefunden wird.

Gruss

Charity

@Talkabout : Ich hab den Fehler gefunden.

In der Linux Shell hat sudo auch nicht funktioniert. Hab nun sudo erneut installiert und jetzt funktioniert es !

Danke euch

Scubao

Servus zusammen,

funktioniert das bei euch? Bei mir wechselt der Zustand permanent zwischen absent und present. 20 Sekunden Absent und dann mal 20 - 30 Present.
Eigentlich eine gute Idee aber funktioniert nicht so richtig bei mir.

Wie ist das bei euch?