Presence und iPhone / Android

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

Vorheriges Thema - Nächstes Thema

Wernieman

Wie sieht jetzt Dein Sudo-Eintrag aus?

Nach einem Kurzcheck hast Du nur 2 Programme drin: arp-scan und hping3
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fl_Indigo

vielleicht hilfts ja jemandem - ich hab das bei mir wie folgt gelöst:

- DHCP leasetime am router auf 5 minuten gesetzt
- jedes phone hat eine reservierte IP am DHCP
- das DHCP leasefile vom router spiegle ich auf einen webserver am router welches ich mit HTTPMOD parse
- wenn phone im leasefile auftaucht --> present
- wenn phone nicht mehr im leasefile steht --> absent

als router OS hab ich gargoyle im einsatz (openwrt aufsatz)

config wie folgt:

#Anwesenheitserkennung
define Anwesenheit HTTPMOD http://10.0.0.254:81/leases.html 60
attr Anwesenheit userattr reading01Name reading01Regex ... reading11Name reading11Regex
attr Anwesenheit event-min-interval .*:60
attr Anwesenheit reading01Name Handy_Martin
attr Anwesenheit reading01Regex (10.0.0.50 Handy_Martin)
attr Anwesenheit reading11Name dummy
attr Anwesenheit reading11Regex (10.0.0.90 ESP8266_Socket_Wohnzimmer)
attr Anwesenheit room 07_Android_Geräte
attr Anwesenheit userReadings Handy_Martin_time:.* {my $timestamp_now = time_str2num(nowdate());; my $timestamp_last = time_str2num(ReadingsTimestamp("Anwesenheit","Handy_Martin","0"));; my $timestamp_diff = $timestamp_now - $timestamp_last;; return $timestamp_diff },\
attr Anwesenheit verbose 0

define handy_martin dummy
attr handy_martin userattr presence presence_map structexclude
attr handy_martin alias Handy Martin
attr handy_martin devStateIcon present:it_network@green absent:it_network@red
attr handy_martin group 1 Anwesenheit Neubau
attr handy_martin presence Anwesenheit_Neubau
attr handy_martin room 07_Android_Geräte
attr handy_martin sortby 1
define DOIF_handy_martin_presence DOIF ([Anwesenheit:Handy_Martin_time] < 600) (setreading handy_martin state present) DOELSEIF ([Anwesenheit:Handy_Martin_time] > 600) (setreading handy_martin state absent)
define DOIF_Telegram_martin_anwesend DOIF ([handy_martin:state] eq "present") (set TelegramBot message Martin zuhause!) DOELSEIF ([handy_martin:state] eq "absent") (set TelegramBot message Martin abwesend!)


der dummy im HTTPMOD zeigt auf ein geräte das immer präsent ist, damit die zeiten auch gerechnet werden wenn KEIN handy anwesend ist...

Master_Nick

- DHCP leasetime am router auf 5 minuten gesetzt

Also was bestimmte Eigenschaften deines Netztes angeht halte ich das für eine sehr heftige Lösung - aber das kommt eben auch stark darauf an wie dein LAN genutzt wird und womit und und :-)
Für mich wäre das nix Habe aber eben auch 2 Aps da würd ich am Tag x IP changes haben :-D

Aber, eine sehr interessante Lösung und wenn es für dich hilft  8) Daumen hoch!
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.... ;-)

fl_Indigo

für MEINE geräte hab ich fixe IPs vergeben, das ist ja auch der schmäh warum ich es für presence nutzen kann.
alles anderen geräte sind eh wurscht welche IP die kriegen...

RappaSan

#94
Zitat von: Master_Nick am 23 Januar 2018, 14:48:44
---

Was sagt er denn bei dir bei let? Eigentlich müsste das voll und ganz gehen wundert eher das er da meckert. Alt mag sein aber nicht outdated oder ersetzt (meines Wissens nach).

---


Hmmm, ich hab ja jetzt einiges umgestellt und krieg's nicht mehr nachvollzogen.
Irgendetwas mit wrong function in line Nr. xx oder so.

But nevermind, nun läuft's ja.

Nachtrag:
Hab's rekonstruieren können durch kopieren des originalscripts #46 Edit 2:
/opt/fhem/FHEM/presence.sh: 46: /opt/fhem/FHEM/presence.sh: let: not found

Master_Nick

 :o welche Version von Raspian nutzt du denn?

Das klingt für mich wie als wäre die Funktion let bei dir nicht verfügbar.
Aber ich hab sie ja so oder so ausgebaut im EDIT 4.
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.... ;-)

RappaSan

Version auf dem Pi2:
Linux FHEM-jessie 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux


JoWiemann

Hm, bash (GNU Bourne Again SHell) ist auch für Jessie als essenziell gelistet und im man file wird ,,let" weiterhin aufgeführt. Auf meinem zweiten Test-RPi läuft Jessie und ,,let" funktioniert.


Gesendet von iPad mit Tapatalk

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

en-trust

Bekomme folgende Meldung...

2018.02.01 16:16:45.219 1: PERL WARNING: Can't exec "/opt/fhem/FHEM/presence.sh": No such file or directory at ./FHEM/99_myUtils.pm line 87.
2018.02.01 16:16:45.221 3: eval: {CheckiPhone("xxx","xxx")}
2018.02.01 16:16:45.239 1: PERL WARNING: Use of uninitialized value $ret in substitution (s///) at ./FHEM/99_myUtils.pm line 89.
2018.02.01 16:16:45.239 3: eval: {CheckiPhone("xxx","xxx")}
2018.02.01 16:16:45.240 1: PERL WARNING: Argument "" isn't numeric in numeric ne (!=) at ./FHEM/99_myUtils.pm line 91.
2018.02.01 16:16:45.240 3: eval: {CheckiPhone("xxx","xxx6")}
2018.02.01 16:16:45.254 2: PRESENCE (Galaxy.A5.Wlan) - error while processing check: unexpected function output (expected 0 or 1):


das sh script ist aber da /opt/fhem/FHEM/presence.sh und mit 777 authorisiert.

Master_Nick

Mhhh....

Also das letzte mit unexpected ist ein Folgefehler aus dem ersten.

Ggf was kaputt kopiert? Also unvollständig?
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.... ;-)

en-trust

Hab das Script genommen...

#!/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

Master_Nick

Hast du denn auch hping3 installiert?
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.... ;-)

en-trust

Jep... und sogar erfolgreich getestet.


pi@raspberrypi:/opt/fhem/FHEM $ sudo hping3 -2 -c 10 -p 5353 -i u1 192.168.1.34 -q
HPING 192.168.1.34 (eth0 192.168.1.34): udp mode set, 28 headers + 0 data bytes

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

kjmEjfu

Can't exec "/opt/fhem/FHEM/presence.sh": No such file or directory at ./FHEM/99_myUtils.pm line 87

ist aber ja recht eindeutig.

Wo liegt denn dein Script? Welche Rechte hat es (ls -al)?
Wie sieht dein Aufruf genau aus?
Migriere derzeit zu Home Assistant

Master_Nick

#104
Eh das Script kann glaub ich keine Hostnames.

Aber der Fehler no file or directory sagt erst mal, dass irgendwo deine Pfade nicht stimmen.

Versuch es mit IP und MAC oder nutze einfach meine Version des Scripts von #89.
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.... ;-)