Wifi (LAN) Scanner

Autor
Logo

Status

STABLE

Version2.3
Min. LB Version

1.1 = LB 0.2.3 2.3 = LB 1.4

Downloadhttps://github.com/Gagi2k/LoxBerry-Plugin-WifiScanner/archive/v2.3.zip
ZweckScannt das Netzwerk nach Geräten und sendet den Status an den Miniserver. Zum Beispiel zur Anwesenheitserkennung.
LanguagesEN, DE
Diskussion
 Version History...

Version 1.0-rc1

  • erste öffentliche Version

Version 1.1

  • Englische Übersetzung

Version 2.0

  • Neue Plugin Struktur
  • Scan nach IP-Adressen
  • Scan ohne FritzBox möglich
  • Zusätzlicher automatischer Scan mittels arping
  • Scan von Miniserver aus starten

Version 2.1

  • Korrektur der Umlaute
  • Informationen werden sofort geschickt, anstatt nur am Ende
  • MQTT-Support

Version 2.2

  • Mehr Log-Augaben
  • Automatische Ermittlung der IP-Adresse aus der MAC-Adresse
  • Konfigurationsoption ob aktiv gescannt werden soll
  • Option um ping anstatt arping zu verwenden
  • MQTT Probleme gelöst

Version 2.3

  • Fixed Bug beim Erkennen von offline Users
  • Verbesserungen beim Umwandeln von mac zu ip Adressen (und andersrum)
  • Neue Einstellung um ARP-Cache zu umgehen

Inhalt



Download

Alle releasese gibts hier: https://github.com/Gagi2k/LoxBerry-Plugin-WifiScanner/releases

Installation

Das Plugin wird wie alle anderen Plugins per ZIP-Datei im Loxberry installiert.

Funktion des Plugins

Das Plugin basiert auf dem Script hier aus dem Wiki.
Hauptsächlich dient das Plugin zur Anwesenheitserkennung von bestimmten Benutzern im WLAN. Dafür werden den Benutzern eine oder mehrere MAC-Adressen zugeordnet und das Plugin fragt die FritzBox periodisch ab ob die eingestellten MAC-Adressen aktuell im Netzwerk verfügbar sind. Für alle anderen Router oder als Fallback werden alle Geräte mittels aktivem Scan abgefragt.
Das Ergebnis wird per UDP oder MQTT an den Miniserver gesendet.

Konfigurationsoptionen

Zunächst kann der Scanner über die Schaltfläche "Scanner aktivieren" angeschalten werden.
Der Scanner scannt dann periodisch nach den eingestellten Benutzern, die im nächsten Schritt festgelegt werden.

Die ComboBox hinter der "Scanner aktivieren" Schaltfläche legt den Abfragezyklus fest.

Über den "Neuer Benutzer" Button, kann ein neuer Benutzer angelegt werden, der in den dann erscheinenen Feldern konfiguriert werden kann.

Jeder Benutzer muss mit einem eindeutigen Namen identifierbar sein. Die Software prüft die Eindeutigkeit nicht ab, aber nachdem der Name als Kennung zum Miniserver geschickt wird, treten hier spätestens Probleme auf.
Jeder Benutzer wird durch eine oder mehrere MAC-Adressen identifiziert. Mehrere MAC-Adressen können durch einen ; getrennt eingestellt werden.
Anstatt einer MAC-Adresse kann auch eine IP-Adresse verwendet werden, bzw. auch beides zusammen.

Die MAC Adressen für eure Geräte findet ihr am besten in der Netzwerkübersicht in eurer Fritzbox oder ihr benutzt eine Scanner Software wie LANScan.

Fritzbox-Anbindung

In der Section "Fritzboxanbindung" könnt ihr einstellen wie eure FritzBox zu erreichen ist. In den meisten Fällen muss hier nichts verändert werden.

Für die Abfrage an der FritzBox werden MAC-Adressen im Format 00:80:41:ae:fd:7e benötigt. Über eine Abfrage bei der FritzBox wird der Online Status ermittelt.
Sollte das Gerät Offline sein, kann zusätzlich noch ein "Aktiver Scan" durchgeführt werden.

Alle Anderen Router

Für alle anderen Router wird der "Aktive Scan" verwendet. Hier werden mittelt ping oder arping Pakete versendet die vom Gerät beantwortet werden müssen um einen Benutzer als online zu markieren.
Dieser Modus kann auch als Fallback für die Fritzboxanbindung verwendet werden. In diesem Fall wird erst die FritzBox befragt und nur wenn das Gerät offline ist, nochmal aktiv der Status ermittelt.

Das aktive Scannen geschiet mittels IP-Adresse. Wurde eine IP-Adresse für einen Benutzer angegeben wird diese verwendet. Wurde nur eine MAC-Adresse angegeben, wird die MAC-Adresse in eine IP-Adresse umgewandelt.
Diese Umwandlung geschieht mittels ARP. Sollte die lokalle ARP-Tabelle nicht gefüllt sein oder die IP-Adressse hier nicht auftauchen, wird die IP-Adresse aktiv ermittelt.
Mittels des "Verwende ARP-Cache" Schalters kann die Verwendung der ARP-Tabelle umgangen werden. Dann wird die IP-Adresse immer aktiv ermittelt.

iPhones

iPhones reagieren nicht zeitnah auf normale "ping" Anfragen, da diese meistens im "Deep Sleep" Zustand sind. Um ein iPhone im Netzwerk zu erkennen, kann das "Ping Kommando" auf arping geändert werden.
Diese speziellen pings werden von iPhones zuverlässiger beantwortet.

Wifi Repeater

Im Normalfall bindet ein Wifi Repeater alle Geräte natlos ins Netzwerk ein. In manchen Fällen ändert sich allerdings die MAC-Adresse für diese Geräte zur Adresse des Repeaters oder zu einem anderen Schema.
In solch einem Fall würde die Abfrage mittels MAC-Adresse nicht richtig funktionieren. Der "Aktive Scan" funktioniert hier weiterhin, allerdings muss der "ARP-Cache" in diesem Fall ausgeschaltet werden, da die Zuordnung von MAC zu IP-Adresse nicht mehr eindeutig ist und jedes mal aktiv ermittelt werden muss.

Miniserver-Anbindung

Die Anbindung an den Miniserver geschieht entweder mittels UDP-Port oder über MQTT

UDP

Für die Anbindugn über UDP muss in der "Miniserver-Anbindung" der UDP-Port gewählt werden mit dem die Daten an den Miniserver gesendet werden

Einrichtung in der Loxone Config Software

Zuerst muss ein neuer Virtueller UDP Eingang angelegt werden. Der UDP Empfangsport muss passend zum gewählten Port in der Plugin Konfiguration gewählt werden. Bei Senderadresse bitte nichts eingeben, ansonsten können die Daten nicht verarbeitet werden.
Hier ein Beispiel für den Standard Port:

Für jeden Benutzer wird nun ein neuer Virtueller UDP Eingang Befehl angelegt.

Die Befehlskennung ist: \i<BENUTZER>:\i\v
<BENUTZER> muss dabei durch den eingestellten Benutzernamen in der Plugin Konfiguration ersetzt werden.
Hier ein Beispiel für den Benutzer "Dominik"

Abfrage vom Miniserver aus starten

In manchen Situationen ist es sinnvoll einen Scan zum jetztigen Zeitpunkt zu starten und ihn in kürzeren Intervallen zu wiederholen. Ein Beispiel hierfür ist zum Beispiel bei Auslösung eines Alarms, um festzustellen ob es ein "Falscher Alarm" war und die Alarmanlage automatisch abzustellen. Ein neuer Scan kann mittels eines Virtuellen Ausgangs gestartet werden. Die Adresse muss dabei auf die IP-Adresse des Loxberrys gesetzt werden. Im Virtuelle Ausgangs Befehl muss Befehl bei EIN auf folgenden Wert gesetzt werden: /plugins/wifiscanner/scan.cgi

MQTT

Diese Option steht nur zur Verfügung wenn das MQTT Gateway Plugin installiert wurde.

Das entsprechende Topic wird automatisch als Subscription für das Gateway angegelt. Alle anderen Einstellungen müssen im MQTT Gateway erfolgen.

Scan on Demand

In den meisten Fällen wir der Intervall der Abfrage sehr konservativ gewählt. In solchen Fällen kann der Status aber nicht mehr für zeitkritische Fälle, wie zum Beispiel das Deaktivieren der Alarmanlage, verwendet werden.
Für diesen Zweck, kann die Abfrage auch mittels URL vom Miniserver gestartet werden.

http://<Loxberry-IP>/wifiscanner/scan.cgi

Roadmap

  • Englische Übersetzung (1.1)
  • Scannen nach IP-Adressen (2.0)
  • Funktion unabhängig von einer FritzBox (2.0)
  • Mehrere Modi um die Abfragehäufigkeit über Loxone anzupassen (2.0 über Miniserver)
  • Update auf neue Loxberry Plugin API (2.0)
  • Loxberry Update Mechanismus (2.0)

Fragen stellen und Fehler melden

Fragen zum Plugin bitte ausschließlich im Forum stellen. Fehler bitte direkt hier eintragen.