Autor Thema: Presence und iPhone / Android  (Gelesen 22151 mal)

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2479
Presence und iPhone / Android
« am: 07 September 2017, 11:58:59 »
Hallo,

da Apple die iPhones immer wieder schlafen schickt habe ich mich nochmal auf die Suche nach einer Lösung gemacht und folgendes im openhab Forum gefunden: https://openhabforum.de/viewtopic.php?t=137 und es etwas angepasst:

#!/bin/bash

declare -a DEVICES
sudo hping3 -2 -c 10 -p 5353 -i u1 $1 -q >/dev/null 2>&1
DEVICES=`arp -an | awk '{print $4}'`
CHECK="$2"
if [[ ${DEVICES[*]} =~ $CHECK ]]
then
echo "1"
else
echo "0"
fi

Das Script habe ich unter /opt/fhem/FHEM/presence.sh lauffähig gespeichert.

In meiner ))_myUtils.pm dann folgende Sub eingetragen:

sub CheckiPhone($$)
{
  my ($ip,$mac)= @_;
  my $ret = "";

  $mac = lc($mac);

  $ret = qx(/opt/fhem/FHEM/presence.sh $ip $mac);

  $ret =~ s,[\r\n]*,,g;        # remove CR from return-string

  if ( $ret != 0 && $ret != 1) {
    Log3 "CheckiPhone", 2, "CheckiPhone: $ret";
    return 0;
  }

  return $ret;

}

und in Presence dann definiert:

function {CheckiPhone("192.168.n.n", "xx:xx:xx:xx:xx:xx")} 60 60
                                        IP                        MAC

Siehe da, es läuft sehr zuverlässig.

Grüße Jörg


« Letzte Änderung: 20 September 2017, 20:07:24 von JoWiemann »
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM
Gefällt mir Gefällt mir x 2 Informativ Informativ x 1 Liste anzeigen

Offline Thyraz

  • Sr. Member
  • ****
  • Beiträge: 882
Antw:Presence und iPhone
« Antwort #1 am: 07 September 2017, 12:16:54 »
Verrückt, warum hat man hier davor noch nichts von hping3 in Verbindung mit dem iPhone gelesen?
Auf Google findet man da Einiges, hier ist dein Post der einzige Treffer.

Vielen Dank für diesen Hinweis, wird daheim gleich mal getestet.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Lacrosse, Hue, Harmony, Solo4k, LaMetric, Snips, ...

Offline f-zappa

  • Jr. Member
  • **
  • Beiträge: 74
Antw:Presence und iPhone
« Antwort #2 am: 07 September 2017, 14:13:36 »
Das dürfte allerdings auch einen Effekt auf die Akkulaufzeit haben ...

Offline Thyraz

  • Sr. Member
  • ****
  • Beiträge: 882
Antw:Presence und iPhone
« Antwort #3 am: 07 September 2017, 15:11:46 »
Klar,

muss man mal schauen wie stark das auf den Akku geht.
Da es daheim Strom gibt, würde es mich nicht weiter stören solange es nicht gravierend schnell den Akku leersaugt.

Geofencing klappt bei uns im neuen Zuhause nicht mehr so zuverlässig.
Problem ist das Heimkommen per Rad oder Auto über die Tiefgarage.

Hier hab ich immer wieder mal das Problem, dass das Telefon gerade dann kein Empfang/Wlan hat wenn die Geofencing App Fhem informieren will.
Eine Erkennung direkt von FHEM Seite wäre mir daher grundsätzlich lieber, als das iPhone die Erkennung zu überlassen mit der Notwendigkeit dann FHEM zu informieren.

Mal sehen wie das läuft.
Dafür hat man hier dann das Problem, dass Akku leer = abwesend bedeuted.
Aber evtl. kann man hier fast alle Fehlerfälle abfangen wenn man den Timestamp des Türkontakts an der Wohnungstür in die Presence-Logik mit einbezieht...
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Lacrosse, Hue, Harmony, Solo4k, LaMetric, Snips, ...

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1853
  • FHEMinist
Antw:Presence und iPhone
« Antwort #4 am: 07 September 2017, 18:05:25 »
Hallo Jörg,

danke fürs Finden!  8)

Testbetrieb läuft bei mir inzwischen auch, werde ebenfalls beobachten und berichten.

gb#
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline Thyraz

  • Sr. Member
  • ****
  • Beiträge: 882
Antw:Presence und iPhone
« Antwort #5 am: 07 September 2017, 18:45:56 »
Bei mir will das Ganze leider noch nicht so recht.
Müsste hping3 schon was zurück liefern, oder ist es Ok, dass hier 100% "packet loss" ist?

So kann ich mein iPhone anpingen wenn es gerade aktiv ist:
ping 192.168.1.44

Hier bekomme folgende Meldung:
sudo hping3 -2 -c 10 -p 5353 -i u1 192.168.1.44 -q
Zitat
HPING 192.168.1.44 (eth0 192.168.1.44): udp mode set, 28 headers + 0 data bytes

--- 192.168.1.44 hping statistic ---
100 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Die CheckiPhone Funktion liefert auch immer 0 zurück.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Lacrosse, Hue, Harmony, Solo4k, LaMetric, Snips, ...

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2479
Antw:Presence und iPhone
« Antwort #6 am: 07 September 2017, 19:03:29 »
Bei mir will das Ganze leider noch nicht so recht.
Müsste hping3 schon was zurück liefern, oder ist es Ok, dass hier 100% "packet loss" ist?

Die CheckiPhone Funktion liefert auch immer 0 zurück.

Die Rückgabe von hping3 ist so Ok. hping3 dient ja auch nur dazu das iPhone aufzuwecken. Mit arp wird dann die Liste der sichtbaren Geräte geholt. Ist da iPhone wach, wird seine MAC aufgelistet und gefunden.

Was hast Du bisher gemacht und was steht im Fhem Log?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1853
  • FHEMinist
Antw:Presence und iPhone
« Antwort #7 am: 07 September 2017, 19:06:37 »
Ich hatte auch kleinere Startschwierigkeiten.

Bei mir war das Problem, dass der User fhem arp nicht im Suchpfad hatte. Ich habe es dann in der presence.sh einfach mit vollem Pfad (bei mir /usr/sbin/arp) angegeben, seither läufts bei mir. 
Evtl. muss auch noch die sudoers angepasst werden.

Es empfiehlt sich bei Problemen auch mal noch die Kommentare auf der von Jörg oben verlinkten Quelle durchzulesen, da wird einiges schon behandelt.

gb#
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline CQuadrat

  • Sr. Member
  • ****
  • Beiträge: 577
Antw:Presence und iPhone
« Antwort #8 am: 07 September 2017, 20:26:41 »
Bei mir war das Problem, dass der User fhem arp nicht im Suchpfad hatte. Ich habe es dann in der presence.sh einfach mit vollem Pfad (bei mir /usr/sbin/arp) angegeben, seither läufts bei mir. 
Evtl. muss auch noch die sudoers angepasst werden.


Bei mir auch.

Bei mir ist auch notwendig, dass in der MAC Kleinbuchstaben stehen.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

Offline Thyraz

  • Sr. Member
  • ****
  • Beiträge: 882
Antw:Presence und iPhone
« Antwort #9 am: 07 September 2017, 20:30:06 »
Arghs...

Nachdem ich mir die Ausgabe von arp angeschaut hab, ist mir mein Fehler klar geworden.
Ich hab die Mac Adresse aus Gewohnheit mit Großbuchstaben geschrieben.
Arp liefert aber Kleinbuchstaben und der Vergleich schlägt fehl.  ::)

Nachdem ich das geändert hab funktioniert der Spaß einwandfrei...

edit: haha, ok du hast die Gleiche Fehlersuche hinter dir CQuadrat. ;)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Lacrosse, Hue, Harmony, Solo4k, LaMetric, Snips, ...

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2479
Antw:Presence und iPhone
« Antwort #10 am: 08 September 2017, 09:29:04 »
Ich hab mal ein lowercase eingebaut.

Grüße Jörg
« Letzte Änderung: 10 September 2017, 19:54:33 von JoWiemann »
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM
Gefällt mir Gefällt mir x 1 Liste anzeigen

Online inoma

  • Full Member
  • ***
  • Beiträge: 465
Antw:Presence und iPhone
« Antwort #11 am: 08 September 2017, 12:05:18 »
Ich habs bei mir seit gestern auch am laufen, funktioniert bisher prima, ich konnte über Nacht keinen negativen Einfluss auf die Batterielaufzeit feststellen.

Wenn ich das WLAN ausschalte (ich benutze auch die Presence parameter "60 60"), dauert es etwa 2 Minuten bis das 'absent' kommt, beim WLAN einschalten maximal eine Minute bis zum 'present'.
Raspberry Pi 3 B+ / Stretch, DbLog,Homematic, Homematic-IP über HMCCU, RESIDENTS, SONOS, FRITZBOX, GCALVIEW, GEOFANCY, HMUARTLGW, HM-MOD-UART, HUEBridge,  TRAFFIC, alexa-fhem + Amazon Echo

Offline Thyraz

  • Sr. Member
  • ****
  • Beiträge: 882
Antw:Presence und iPhone
« Antwort #12 am: 08 September 2017, 13:27:15 »
Ja, beim abschalten kommt eben max. eine Minute bis das Gerät aus dem ARP Cache fliegt und eine weiter max. Minute bis FHEM wieder abfrägt zusammen.
Beim einschalten gibt es nur die max. Minute bis FHEM wieder abfrägt.

Keine Ahnung ob man dem Pi noch beibringen kann bestimmte ARP Einträge sofort zu vergessen und dann erst mit hping3 eine neue ARP Anfrage zu starten?
Das würde die weitere Gedenkminute eliminieren.

edit: Zumindest gibt es
arp -d 192.168.xxx.xxx
als delete Option.

Teste das später daheim mal...
« Letzte Änderung: 08 September 2017, 13:29:37 von Thyraz »
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Lacrosse, Hue, Harmony, Solo4k, LaMetric, Snips, ...

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1853
  • FHEMinist
Antw:Presence und iPhone
« Antwort #13 am: 09 September 2017, 07:43:13 »
Ich hatte gestern plötzlich aus irgendeinem Grund das Phänomen, dass mein iPhone regelmäßig fälschlicherweise absent gemeldet wurde und zwar immer direkt gefolgt von einem present (iPhone-Restart und arp-cache löschen hat nix gebracht).
Es hatte irgendwie den Anschein, als ob der hping3 erst verspätet Wirkung zeigt, bzw. nicht mehr richtig durchkommt.

Ich habe mir für den hPing-Aufruf nun einen cronjob (root) eingerichtet, seither läuft es wirklich zuverlässig. Jetzt ist zwar nicht mehr alles schön in einem Skript und die ip für den Ping kein Parameter mehr, sondern direkt im cronjob hart eingetragen, aber dafür läuft der Ping jetzt auf jeden Fall mit root-Rechten, so dass ich nicht mehr darauf achten muss, dass fhem die erforderlichen Rechte für dafüt hat (Stw. sudoers)

Der Eintrag in der crontab sieht wie folgt aus (name-of-phone natürlich durch den echten Namen ersetzt):

* * * * * /usr/sbin/hping3 -2 -c 10 -p 5353 -i u1 <name-of-phone> -q >/dev/null 2>&1

Wie gesagt, seither habe ich keine Probleme mehr damit. Wenn ich mal noch Lust habe, mache ich mich mal noch an die Ursachenforschung für das o.g. Phänomen.

gb#

Update (09.09.2017):
Das mit der Zuverlässigkeit hat leider schon wieder ein Ende. Habe jetzt wieder das selbe Phänomen.
Habe den Testbetrieb nun erst mal eingestellt, da es sich außerdem auch spürbar auf den Akku auswirkt.

Schade! Wäre schön gewesen  :(

Update (01.02.2018)
Aufgrund einer Nachfrage habe ich mal den crontab-Eintrag hier noch ergänzt.
« Letzte Änderung: 01 Februar 2018, 20:48:19 von Benni »
FHEM (FL 9.9) (configDB+DbLog) auf Debian Wheezy.
Jede Menge HM mit 2x HMUART (WeMos+esp-link) über VCCU.
UniRoll an CUL868. Sebury F2-2 RFID über ESPEasy
Module: 98_rssFeed und 98_QRCode

Offline MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 4387
  • NIVEAu ist keine Creme...
Antw:Presence und iPhone
« Antwort #14 am: 10 September 2017, 11:48:46 »
Hi,

ich häng mich hier mal dran...

Suche schon länger nach einer Lösung für Presence mit dem Handy.

Habe zwar Android aber ich dachte: probieren kann ich's ja mal.

Habe es seit einigen Tagen parallel zum "normalen" Presence lan-ping laufen und bis jetzt funktioniert die hping3-Methode so wie es sein soll...

Werde das mal noch weiter testen und sehen...

Gruß und danke, Joachim
FHEM 5.8 PI3: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf, ...
FHEM 5.8 PI2: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM 5.8 PI3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

 

decade-submarginal