Presence und iPhone / Android

Begonnen von JoWiemann, 07 September 2017, 11:58:59

Vorheriges Thema - Nächstes Thema

HausHH

Steht der Parameter -p bei hping nicht für den Port?
Was passiert, wenn Du ohne diesen Parameter hpingst?
Icmp (das Protokoll hinter Ping) erfordert meiner Meinung nach keinen Port und wenn auf Port 5353 nichts lauscht, kann auch keine Antwort kommen.
Hping kann mehr als Ping, also auch Ports per TCP ansprechen.

1dz

Hallo Ralf,

mein Problem war das ich einige Syntax Errors in der 99_myutils hatte.
Wie auch immer, mit Deiner Hilfe ist es mir nun gelungen eine brauchbare An(Abwensenheitserkennung zu basteln.
Bislang, das heißt seit Samstag 23.02.19,  keine Fehlalarme bei mir!!!!!!!!
Ich benutze die Hping Methode: IP und Mac Adresse des Smartphone, und wie Du mir zeigtest das Auslesen der Fritzbox: Mac Adresse des Smartphone.

Vorher wurde mein Handy in unregelmäßigen Abständen als abwesend erkannt, obwohl es sehr wohl hätte anwesend sein müssen.
Ich werde nun noch versuchen meinen Wlan Repeater, so wie im Wiki beschrieben, mit einzubinden, weil sich
mein Phone manchmal mit der Fritzbox und manchmal mit dem Repeater connected.

So, bleibt noch sich recht herzlich zu bedanken. Natürlich auch an alle anderen die die ganze Vorarbeit geleistet haben.
Es ist schon toll was mit Fhem alles möglich ist.

Gruß
Thomas

Fowler

@HausHH

Ohne den Port habe ich es auch schon probiert. Das ging leider auch nicht.

Kann es sein, dass da entweder die FritzBox oder vielleicht der Switch (managed) irgendetwas blockiert?

Ich konnte allerdings nichts entsprechendes finden.

HausHH

Zitat von: Fowler am 25 Februar 2019, 09:26:32
@HausHH

Ohne den Port habe ich es auch schon probiert. Das ging leider auch nicht.

Kann es sein, dass da entweder die FritzBox oder vielleicht der Switch (managed) irgendetwas blockiert?

Ich konnte allerdings nichts entsprechendes finden.
Stimmt, ich habe auch den -p Parameter in meinem Aufruf.
Was für ein Gerät ist denn am Ziel? Kannst Du dort den eingehenden Verkehr mitschneiden, z.B. bei einer Windows Firewall? Dann könnte man eingrenzen, ob es Sinn macht, sich mit dem Switch zu beschäftigen

Fowler

#259
Zitat von: HausHH am 25 Februar 2019, 09:35:52
Stimmt, ich habe auch den -p Parameter in meinem Aufruf.
Was für ein Gerät ist denn am Ziel? Kannst Du dort den eingehenden Verkehr mitschneiden, z.B. bei einer Windows Firewall? Dann könnte man eingrenzen, ob es Sinn macht, sich mit dem Switch zu beschäftigen

Das ist ein Android-Phone, ich wüsste nicht wie man da leicht etwas mitschneiden kann.

Der arp-scan Teil scheint allerdings zu funktionieren.

Ich verwende das presence.sh Skript von Master_Nick:
https://forum.fhem.de/index.php/topic,76342.msg769242.html#msg769242


Wann braucht man denn von dem Skript den hping3-Teil?

HausHH

Zitat von: Fowler am 25 Februar 2019, 09:52:55
Das ist ein Android-Phone, ich wüsste nicht wie man da leicht etwas mitschneiden kann.


Wann braucht man denn von dem Skript den hping3-Teil?

Ich glaube, hping3 kommt ins Spiel, wenn der arp-scan fehlgeschlagen ist, kann mich aber irren.

Zurück zu Deinem Problem:
- das Android-Phone ist über ein im Switch integriertes WLAN-Modul mit diesem verbunden? Oder hast Du auch noch einen WLAN-AP?
- kannst Du andere Geräte im LAN per hping3 erfolgreich ansprechen?
- kannst Du andere Geräte im WLAN per hping3 erfolgreich ansprechen?
- hat der Switch (oder ein vielleicht doch vorhandener WLAN-AP) eine Einstellmöglichkeit für ICMP? (An/Aus, entweder Global oder pro Anschluss oder pro Host)?

Fowler

Mir ist noch nicht ganz klar, warum ich da immer 100% packetloss habe, aber ich glaube das Skript funktioniert auch so korrekt.

Zumindest wird bei beiden Schleifendurchläufen hinterher der richtige Status zurückgeliefert.

Für mich ist das dann so ok.

Trotzdem vielen Dank für die Hilfe!

Beetle2003

Zitat von: eurofinder am 22 Februar 2019, 23:40:10
@Beetle2003:
Ich habe deine Anwesenheitsprüfung jetzt bei mir mal zwecks Probe umgesetzt.
Smartphone_XXX
Smartphone_XXX_hping
Presence_Smartphone_XXX
werden auch mit present bzw absent gesetzt.

Welches Device trage ich dann jetzt unter meinem ROOMMATE unter rr_presenceDevices ein, damit der Status auch aktualisiert wird. Muss ich an den Attributen noch was ändern und wenn ja wie?
Bin zwar nicht ganz unwissend was Linux betrifft, aber mit FHEM erst seit kurzem befasst und noch in der Lernphase:-)

Gruß und schönes Wochenende
eurofinder

Hallo,

ich habe es bei mir wie folgt gelöst:
Die Anwesenheitserkennung führe ich mit Smartphone_XXX durch, da diese schneller ein positives ( Anwesenheit ) Ergebnis liefert.
Die Abwesenheitserkennung mit Smartphone_XXX_hping, da diese das Gerät versucht zu wecken, falls es im Stromsparmodus ist. Hierdurch ergibt sich eine Verzögerung bei mir von 30 Minuten ( so konfiguriert ), doch ich bin mir dann sicher, dass das Gerät nicht mehr im Haus ist. Wenn alle Smartphones das Haus tagsüber verlassen haben, fahre ich die Heizung in den Eco Mode und aktiviere die Alarmanlage, sofern vorher nicht manuell erledigt wurde.

Mfg
Ralf

ErzGabriel

Hallo zusammen.
Ich habe mit dem umsetzen der hier beschriebenen Anwesenheitsabfrage ein kleines Problem.
Script ist angelegt und funktioniert manuell einwandfrei.
Subroutine steht in der myUtils und gibt auch keinen fehler aus.
Device ist angelegt und gibt auch keine Fehlermeldung aus.

Trotzdem wird mein Handy immer als abwesend angezeigt. Ich stehe gerade völlig auf dem Schlauch und bräuchte mal ne Starthilfe. Das Script liefert 1 oder 0 zurück, kann es sein, das ich noch im Device anlegen muss, was 1 und 0 sind? Und wenn ja, wie ging das nochmal mit der Umsetzung?

Danke.

MadMax-FHEM

Welches Script hast du WIE WO abgelegt!?
(am besten posten)

Wie sind dort die Rechte für das Script: ls -la

Wenn du das Script in FhemWeb ausführst funktioniert das auch!?

Einfach Scriptname inklusive vollständigem Pfad wie folgt in FhemWeb:

{qx("/vollständiger Pfad/Scriptname")}

Du brauchst nat. ein Presence-Device was die Funktion auch aufruft...
...und Presence-Typ halt entsprechend wählen/definieren etc.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Master_Nick

Zitat von: ErzGabriel am 15 September 2019, 10:58:09
Hallo zusammen.
Ich habe mit dem umsetzen der hier beschriebenen Anwesenheitsabfrage ein kleines Problem.
Script ist angelegt und funktioniert manuell einwandfrei.
Subroutine steht in der myUtils und gibt auch keinen fehler aus.
Device ist angelegt und gibt auch keine Fehlermeldung aus.

Trotzdem wird mein Handy immer als abwesend angezeigt. Ich stehe gerade völlig auf dem Schlauch und bräuchte mal ne Starthilfe. Das Script liefert 1 oder 0 zurück, kann es sein, das ich noch im Device anlegen muss, was 1 und 0 sind? Und wenn ja, wie ging das nochmal mit der Umsetzung?

Danke.


Moin :-) Zugegeben..... eine Anleitung auf einer Seit gibt es hier auch glaub ich gar nicht so Richtig...

Devices die du zwingend brauchst:
Nur die Handys die du sehen willst (in dem Fall dann deines)

Dies sollte angelegt sein wie folgt:

Als PRESENCE Device und mit der Definition
     
function {CheckPresence("HostnameDeinesHandys", "00:00:00:00:00:00")} 120 300
*Die 00:00:00:00:00:00 mit der Mac deines Handys ersetzen bittte.

Dann muss das script in die MyUtils wandern wie du schon sagtest.
Und du benötigst hping3 und arpscan installiert. Ansonsten muss FHEM die Scripte ausführen dürfen (Berechtigungen setzen).
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

ErzGabriel

Ich bedanke mich für Eure Hilfe, Problem ist gelöst.
Master_Nick hatte den richtigen Hinweis für mich.

Ich Schussel hatte vergessen, Fhem die Berechtigung für die Scripte zu geben.

Danke, für die Hilfe.

en-trust

Ich habe mal dieses CheckAll verwandt...

sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  $MAC =~ tr/:/_/;
  $MAC = "mac_".uc($MAC);
  my @FBS = devspec2array("TYPE=FRITZBOX");
    foreach( @FBS ) {
my $StatusFritz = ReadingsVal($_, $MAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
}
    }
  return $Status
}


Allerdings zeigt mir fhem bei der mac nur als Status defined, aber keine present.

Hier mal ein List dazu...

Internals:
   CFGFN     
   DEF        function {checkAllFritzMACpresent("meine Mac")} 60 60
   FUUID      5e5e0a24-f33f-e9d9-9b06-e31c1440d6619874
   INTERVAL_NORMAL 60
   INTERVAL_PRESENT 60
   MODE       function
   NAME       Smartphone_Sven_all
   NOTIFYDEV  global
   NR         1388
   NTFY_ORDER 50-Smartphone_Sven_all
   STATE      defined
   TYPE       PRESENCE
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1583226190.54382
           VALUE      disabled
   READINGS:
     2020-03-03 08:41:24   model           function
     2020-03-03 10:04:24   state           defined
   helper:
     DISABLED   0
     call       {checkAllFritzMACpresent("meine Mac")}
     RUNNING_PID:
       abortFn    PRESENCE_ProcessAbortedScan
       arg        Smartphone_Sven_all|{checkAllFritzMACpresent("meine Mac")}|0
       bc_pid     126030
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalFunctionScan
       pid        WAITING:
       timeout    60
       abortArg:
Attributes:
   group      Anwesenheit
   room       3.2_Anwesenheit,Fritzbox
   userattr   presence presence_map structexclude

Master_Nick

#268
Erbitte mehr Erläuterung "dieses CheckAll"? Ich kenne Checkall nur von DOIF.

*EDIT: Ah so heißt deine Funktion :-D

Also was komplett eigenes - richtig?
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

MadMax-FHEM

#269
Zitat von: Master_Nick am 03 März 2020, 11:08:59
Also was komplett eigenes - richtig?

Nicht ganz, ist wohl das "normale" Fritzbox-Anwesenheit...
...ABER @en-trust: hier (total) falsch! ;)

Evtl. mal in einem PRESENCE-Modul-Thread nachfragen...

EDIT: oder (wahrsch. besser) einen neuen Thread aufmachen...

Hier geht es um die "hping3-Methode"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)