pimatic-netcheck ist ein Pimatic-Plugin, das es ermöglicht zu prüfen, ob bestimmte Netzwerk- oder Bluetooth-Geräte anwesend sind.

Das Hauptziel dieses Plugins ist es, bestimmte Nachrichten zu senden (unter Verwendung anderer Plugins wie z.B. pimatic-telegram) oder Aktionen auszuführen, wenn ein Kontaktsensor geöffnet wurde und niemand zu hause ist (wenn z.B. keine Smartphones zu hause sind).

 

Ein NetCheck kann durch eine Regel gestartet werden und dann andere Regeln, abhängig vom Ergebnis des Checks, ausführen.

Beispiel: When contact-sensor-door is opened then check netcheck-1 if absent exec rule send-alarm-message

 

Weiterhin kann ein Check automatisch über einen Intervall in regelmäßigen Abständen ausgeführt werden.

 

Eine englische Version dieser Beschreibung ist hier zu finden.

 

Build-Status NPM-Version

Der Quellcode ist öffentlich im cryHost GitLab Repository verfügbar. Hier können auch Fehler und Ideen gemeldet werden.

 

Unterstützte Prüfungen

Es werden zwei verschiedene Arten an Prüfungen unterstützt:

  1. Prüfung von einem oder mehreren Netzwerkgeräten unter Verwendung ihrer IPv4-Adresse oder des Hostnamens.
  2. Prüfung von einem oder mehreren Bluetooth-Geräten unter Verwendung ihrer MAC-Adresse.
    Hierfür muss das Bluetooth-Gerät mit dem Raspberry Pi, auf dem Pimatic läuft, gekoppelt sein. (siehe weiter unten)

 

NetCheckDevice

Es muss mindestens ein NetCheckDevice angelegt werden. Dieses Gerät verhält sich wie ein PresenceSensor (anwesend = NetCheck erfolgreich, abwesend = NetCheck nicht erfolgreich).

Zu diesem Gerät können dann IP-Adressen/Hostnamen oder Bluetooth MAC-Adressen hinzugefügt werden. Dies sind die externen Geräte (z.B. Smartphones) die geprüft werden.

Über die needAll-Option kann festgelegt werden, ob alle aufgelisteten Geräte anwesend sein müssen, oder ob eines ausreicht.

Zusätzlich kann ein Intervall für eine regelmäßige automatische Prüfung eingestellt werden.

 

 

Regeln

Syntax

When <eine Bedingung> then check <NetCheckDevice> [if present exec rule <RuleID>] [if absent exec rule <RuleID>]

Beispiel

Wenn ein ContactSensor geöffnet wird, dann führe einen NetCheck durch und nur wenn der NetCheck fehlgeschlagen ist sende eine Nachricht über Telegram.

Als erstes wird eine Regel erstellt, die die Aktion zum Senden der Nachricht enthält. Hier sollte eine When-Bedingung angegeben werden, die niemals erfüllt ist, z.B. 1 is 0:

When 1 is 0 then send text telegram to "test"

 

Dann wird eine zweite Regel erstellt, die den NetCheck und anschließend gegebenenfalls die Aktion der ersten Regel ausführt:

When contact-sensor-1 is opened then check netcheck-test if absent exec rule tg-send-test

Dies führt den NetCheck vom Gerät netcheck-test aus und wenn der Check abwesent ergeben hat (Check fehlgeschlagen), wird die Aktion der ersten Regel tg-send-test ausgeführt.

Weiterhin kann auch eine Regel hinzugefügt werden, die ausgeführt wird, wenn der Check anwesend ergeben hat.

 

Bluetooth Voraussetzungen

Hardware

Es wird ein Raspberry Pi mit integriertem Bluetooth (z.B. 3B) oder ein zusätzlicher Bluetooth-Dongle benötigt.

Software

Wenn die Hardware vorhanden/angeschlossen ist, dann kann das Paket bluetooth über die Kommandozeile installiert werden:

sudo apt-get install bluetooth

 

Bluetooth Kopplung

Damit der Bluetooth-NetCheck verwendet werden kann müssen das Bluetooth-Gerät und der Raspberry Pi, auf dem Pimatic läuft, gekoppelt sein.

Dies kann über die Kommandozeile wie folgt erledigt werden:

  1. Das Gerät auf „sichtbar“ stellen, damit es gefunden werden kann.
  2. Über die Kommandozeile hcitool scan aufrufen, um die MAC-Adresse des Gerätes (z.B. BA:BE:13:37:BE:EF) zu erhalten.
  3. Kopplung der Geräte durch den Aufruf von sudo hcitool cc <MAC>; sudo hcitool auth <MAC> über die Kommandozeile durchführen. Dabei <MAC> mit der MAC-Adresse aus Schritt 2 ersetzen.
  4. Das Gerät wieder auf „nicht sichtbar“ stellen.
  5. Kontrollieren der Kopplung durch Aufruf von sudo hcitool info <MAC> über die Kommandozeile. Dies sollte einige Informationen über das Gerät anzeigen.

Wenn die Kopplung erfolgreich war, dann kann die MAC-Adresse des Gerätes bei einem NetCheckDevice hinzugefügt werden.

 

Lizenz

Lizenziert unter GPL Version 2

Copyright (c) 2017 Peter Müller