Presence und iPhone / Android

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

Vorheriges Thema - Nächstes Thema

Wernieman

Gucke es Dir mal genauer an:
-r--r----- 1 root root     36 Apr 29  2019 010_at-export
-r--r----- 1 fhem dialout 111 Apr 29 19:10 010_fhem-nopasswd
-r--r----- 1 root root     27 Okt 18  2016 010_pi-nopasswd


Speziell die User/Gruppe und dann den Fehlertext "/etc/sudoers.d/010_fhem-nopasswd gehört UID 999, sollte UID 0 gehören]"

Hinweis: UID 0 = root
- 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

is2late

Vielen Dank, Wernieman! Tipp hat geholfen!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Wernieman

Ich hoffe Du hast was gelernt. Viele Fehler kann man durch lesen des Fehlertextes selber lösen.
- 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

is2late

#288
Ja, denke auch, dass so der Lerneffekt größer ist. Allerdings muss man die Fehlermeldung auch erst einmal richtig interpretieren können :-\
Nun ist die Fehlermeldung zwar verschwunden, aber die Erkennung funktioniert trotzdem noch nicht korrekt.
ls - la zeigt
-r--r-----   1 root root  115 Apr 30 11:21 010_fhem-nopasswd

sudo /opt/fhem/FHEM/presence.sh 192.168.1.1 aa:bb:cc:dd:00:11] wirft die "1" aus.

Genau wie oben #277, ergibt

[{CheckPresence("x.x.x.x","x:x:x:x:x:x")}]  aber "0".

99_myUtils hat folgenden Inhalt:

package main;

use strict;
use warnings;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

# Enter you functions below _this_ line.
package main;
use strict;
use warnings;

sub CheckPresence($$)
{
  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 "CheckPresence", 2, "CheckPresence: $ret";
    return 0;
  }

  return $ret;

}

1;


Deinen Tipp #282 habe ich schon umgesetzt.
Was könnte sonst noch falsch sein? Welche Infos kann ich noch liefern?

LG Ingo
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Wernieman

Also Script läuft?

Baue in Dein myUtils mehr Debugmeldungen ein. Sorry aber da müssen andere ran ...
- 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

is2late

Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

Otto123

#291
Zitatsudo /opt/fhem/FHEM/presence.sh 192.168.1.1 aa:bb:cc:dd:00:11]
wirft die "1" aus.

Genau wie oben #277, ergibt

[{CheckPresence("x.x.x.x","x:x:x:x:x:x")}]  aber "0".
Naja, wenn das presence.sh Script wirklich sudo braucht :( dann muss doch auch sudo in den Aufruf in der 99_myUtils!?
Insofern versteh ich #141 nicht, oben sudo unten nicht. Aber ich will diese 100 Folgeseiten nicht lesen. Ich brauch diese Lösung nicht ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

is2late

Volles Verständnis....aber danke für Deinen Gedanken!
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

RappaSan

Ist die einsame eckige Klammer wirklich im sudo Aufruf drin? ???

is2late

Nein, sorry, keine Ahnung, wie die Klammer da reingekommen ist. Der Aufruf funktioniert jedenfalls.
Pi4, Tahoma Jalousien, Hue, Echo, Sonos, Lupusec XT3, FritzBox

howy-1

Hallo zusammen,

ich grabe mal hier nach 120 Tagen ein wenig um, indem ich nur etwas ergänzen möchte:

Das Skript "presence.sh" läuft fehl, wenn man 2 Netzwerk-Devices hat.  Mein Server hat eth0 und eth1 und nach einigem Recherchieren habe ich herausgefunden, dass der im Skript enthaltene arp-scan-Befehl das falsche Netzwerk-Device bei mir genommen hat und deswegen die Handys immer als abwesend gekennzeichnet wurden. Nach hinzufügen von --interface=eth1 gehts dann wieder.

Der Aufruf sieht dann in presence.sh so aus:

PRECHECK=`arp-scan --interface=eth1 -q -g ${IP} | grep -o "${MAC}"`


und

STATUS=`arp-scan --interface=eth1 -q -g ${IP} | grep -o "${MAC}"`


Bei der Option "--interface" ist natürlich immer das jeweils gemeinte Interface einzutragen.  ;)


Grüße, Dirk
Vielleicht konnte ich jemand damit helfen. Bei mir funktioniert es jetzt wieder.

HausHH

Moin zusammen,

ich hatte vor kurzem festgestellt, dass das in diesem Thread behandelte Script bzw. das darin verwendete arp-scan bei meinem Debian (Buster) für zahlreiche Meldungen im Syslog sorgt. Bei jedem Aufruf von arp-scan wird für die Netzwerkkarte einmal kurz der Promiscuous Mode eingeschaltet und dann auch sofort wieder ausgeschaltet. Das erzeugt jede Menge Einträge im Syslog (ich weiß, könnte man filtern) und das System wird ziemlich träge, so dass man nach dem Tippen eines Kommandos an der Kommandozeile zuschauen kann, wie die Buchstaben erscheinen.

Das war ziemlich lästig und ich habe keine Möglichkeit gefunden, arp-scan ohne den Promiscuous Mode aufzurufen, so dass ich nach einer Alternative geschaut habe. Ich habe die arp-scan-Aufrufe nun ersetzt durch Aufrufe mit dem ip-Kommando.

Aus `sudo arp-scan -q -g ${IP} | grep -o "${MAC}"`
wurde `ip -4 neighbor show | grep -o "${MAC} REACHABLE" | grep -o "${MAC}"

Ich musste dann noch den AbsenceThreshold etwas erhöhen, da Änderungen deutlich schneller durchschlagen. Das Device wechselt nun ziemlich häufig zwischen "Maybe absent" und "Present", aber das scheint mir das kleinere Übel zu sein.

Falls jemand einen Tipp für mich hat
- wie ich längere "Present"-Phasen ohne den häufigen Wechsel zu "Maybe absent" erreiche
oder
- die Nutzung des Promiscuous Mode bei Nutzung von Arp-Scan verhindern kann
wäre ich sehr dankbar.

Schönen Abend und viele Grüße aus Hamburg
Helge

Otto123

#297
Hallo Helge,

ZitatFalls jemand einen Tipp für mich hat
- wie ich längere "Present"-Phasen ohne den häufigen Wechsel zu "Maybe absent" erreiche
schau mal ein userreadings könnte diesen Punkt richten.
https://forum.fhem.de/index.php?topic=117884.0

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

HausHH

Danke Otto, schaue ich mir an.
Fürs Erste habe ich die MAXRETRIES im Skript von 10 auf 25 erhöht, damit der Hping3 mehr Versuche macht.
Scheint bei mir bisher ganz gut zu funktionieren, d.h. jetzt springen die Handys nicht mehr ständig hin und her.

Danke und Gruß
Helge

howy-1

Hallo HausHH

Zitat von: HausHH am 03 Februar 2021, 22:11:18
Ich habe die arp-scan-Aufrufe nun ersetzt durch Aufrufe mit dem ip-Kommando.

Aus `sudo arp-scan -q -g ${IP} | grep -o "${MAC}"`
wurde `ip -4 neighbor show | grep -o "${MAC} REACHABLE" | grep -o "${MAC}"



wo genau hast Du das geändert?  In presence.sh?   Bei mir rollen auch die Meldungen bezügl. "promiscuous mode" über die Konsole, weshalb ich das auch gerne umstellen würde.

Gruß,Dirk