Presence und iPhone / Android

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

Vorheriges Thema - Nächstes Thema

Master_Nick

Moin,

also ich habe den hping3 manuell ausgeführt als mein Telefon schlief und es erschien dennoch nicht in arp Tabellen oder ließ sich aktiv anpingen.
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.... ;-)

Master_Nick

#46
Frohes Neues!

:) So habe mir nun mal die Zeit genommen und siehe da bisher sieht es sehr gut aus.
Vielen Dank für diese fleißige Vorarbeit - da musste man echt nur noch nehmen - tausend Dank!!

Mache nun mal eine Testphase und hoffe dann die ausgelagerte Logik auf den Mobiltelefonen abschalten zu können.

Nun wäre es ja noch fantastisch für diese Lösung automatisch Geräte zu erkennen. Also einen Filter für die Geräte, die IMMER im Netz sind (NAS, Router, APs, Pis, etc.) und wenn aber neue Geräte hinzukommen sollten sie automatisch angelegt werden und mittels der Funktionalität auf Anwesenheit geprüft werden. Oder zumindest vorgeschlagen für Anlage (Touch freundlich für das Bedienpanel).

Das wäre ein Traum! Der schon wieder meine aktuellen Fähigkeiten übersteigt   :-[


Aktuelle Version meines Scriptes: https://forum.fhem.de/index.php/topic,76342.msg769242.html#msg769242
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.... ;-)

fhem_starter_1

Hallo zusammen,

ich habe das Skript wie im ersten Post beschrieben eingebunden.
Ich habe anschließend ein Gerät mit "define handy_test function {CheckiPhone("192.168.0.103", "C0:xx:xx:xx:xx:xx")} 60 60" angelegt.
Allerdings bekomme ich immer die Fehlermeldung "PRESENCE (handy_test) - error while processing check: unexpected function output (expected 0 or 1): "
Hat jemand eine Idee, woher das kommen könnte? Der State des Gerätes bleibt auch dauerhaft auf "error".

Hier nochmal die 99_myUtils.pm:
##############################################
# $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.
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;
  }
}
1;

MadMax-FHEM

Poste doch mal ein list des PRESENCE-Devices...

Und: das Script presence.sh hast du nach /opt/fhem/FHEM kopiert und ausführbar gemacht...

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)

kjmEjfu

Die letzte Version von Master_Nick funktioniert mit meinem iPhone 6S leider nur eingeschränkt. Sobald das iPhone länger als +5 Minuten nichts mehr gemacht hat (schläft) wird es nicht mehr gefunden. Das Aufwecken scheint nicht so funktionieren.
Hat jemand eine Idee, woran das scheitern kann?
Migriere derzeit zu Home Assistant

fhem_starter_1

Zitat von: MadMax-FHEM am 14 Januar 2018, 12:50:02
Poste doch mal ein list des PRESENCE-Devices...

Und: das Script presence.sh hast du nach /opt/fhem/FHEM kopiert und ausführbar gemacht...

Gruß, Joachim
Internals:
   DEF        function {CheckiPhone("192.168.0.103", "xx:xx:xx:xx:xx:xx")} 60 60
   MODE       function
   NAME       handy_test
   NOTIFYDEV  global
   NR         97
   NTFY_ORDER 50-handy_test
   STATE      error
   TIMEOUT_NORMAL 60
   TIMEOUT_PRESENT 60
   TYPE       PRESENCE
   READINGS:
     2018-01-14 11:39:32   model           function
     2018-01-14 13:48:55   state           error
   helper:
     ABSENT_COUNT 0
     PRESENT_COUNT 0
     call       {CheckiPhone("192.168.0.103", "xx:xx:xx:xx:xx:xx")}
Attributes:

Mac-Adresse hab ich hier mal durch xx ersetzt. Die Datei ist ausführbar in dem Ordner, hab ich auch per ssh nochmal getestet, Rechte sind auch an fhem:dialout angepasst.

MadMax-FHEM

Was kommt denn auf der Console zurück, wenn du das Script direkt auf der Linux Console aufrufst?

Steht etwas im fhem Log?

Denn die Sub sollte ja alles außer 0 bzw. 1 abfangen und nur 0 oder 1 zurückgeben aber einen Eintrag machen was tatsächlich zurück kam...

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)

fhem_starter_1

Wenn ich die IP und Mac eingebe kommt dort eine 0 zurück, wenn ich nur die IP oder gar nichts eingebe kommt eine 1 zurück. Im Log steht nur der Fehler hier:
PRESENCE (handy_test) - error while processing check: unexpected function output (expected 0 or 1):

frank

in deiner funktion fehlt am ende die zeile:
return $ret;
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

fhem_starter_1

Zitat von: frank am 14 Januar 2018, 15:26:35
in deiner funktion fehlt am ende die zeile:
return $ret;
Das war's, danke!
Dann scheint das Skript im ersten Post falsch zu sein, sollte eventuell mal angepasst werden

frank

da hatte ich aber geschaut und mit deinem verglichen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

kjmEjfu

Wenn man im letzten Script von MadMax-FHEM das erste

sleep .1

durch ein

sleep .2

ersetzt, so verbessert sich scheinbar die Erkennung. Zumindest habe ich das bei mir auf einem Pi3 festgestellt. Vorher sehr viele false absents, jetzt mit dieser Anpassung sehr viel zuverlässiger.
Migriere derzeit zu Home Assistant

Thyraz

Bei den Lösungen mit Sleep würde ich das Script evtl. umbauen, dass es keinen Rückgabewert zurückgibt, sondern FHEM über andere Wege benachrichtigt.
Zum Beispiel über Telnet und dann dafür das Script nicht mit qx starten, damit es es im Hintergrund und nicht sychron gestartet wird.

Wenn man den im Post 1 beschriebenen Weg geht, ruft FHEM das Script ja synchron auf und wird blockiert bis zum Rückgabewert wenn ich das richtig verstehe.

Klar sind 0.2 Sekunden nicht sonderlich lange, aber wenn man sich das bei jedem Script / Modul denkt addiert sich das schnell.
Und wenn man mehrere Handys überwachen will werden die Gedenksekunden auch länger...

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

frank

sicher das hier die fhem hauptinstanz blockiert wird?
im mode lan-ping arbeitet presence doch nonblocking. warum sollte das im mode function anders sein.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Thyraz

Ach verdammt.
Da lag mein Denkfehler. ;)

Hatte nur die Funktion selbst im Blick.
Den Aufruf über Presence hab ich ausgeblendet.

Dann passt es natürlich..
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...