GSM-Gerät 2 (GG2) – Notzeit

Gestern wurde im Heidekreis aufgrund des Hochwassers vom Kreisjägermeister die Notzeit ausgerufen.

Das bedeutet „Hahn in Ruh“ auch für die Fangjagd.

Wie bildet man das jetzt mit den Fallen und Fallenmeldern ab? Vor Ort müssen natürlich die Falle physisch unscharf geschaltet werden. Im System kann man das dokumentieren, indem mal – wenn man in der Rolle Revierinhaber agiert – den Status der Fallen auf „Inaktiv“ setzt. Das geht in der Bearbeitungsoberfläche der einzelnen Falle.

Alle Fallen die nicht aktiv sind, werden in der Übersicht (und auch der Status-Mail) ausgegraut angezeigt.

GSM-Gerät 2 (GG2) – WhatsApp

In schöner Regelmäßigkeit saß ich mit der Frau zusammen und die Gespräche drehten sich im Kreis. Sie wünschte sich eine App für den Markwart, damit man auch direkt vom Mobiltelefon informiert wird und nicht erst seine Mails lesen muss. Ich bin da ziemlich dagegen, weil ich schon viel zu viele Apps auf dem Mobiltelefon habe und jedes Geschäft und jede Marke meint, noch eine App schaffen zu müssen, die ich unbedingt brauche.

Nach etlichen Abenden und zugegebenermaßen auch einigen Flaschen Wein und Bier haben wir dann herausgearbeitet, wie wir das beides unter einen Hut bekommen: Die Benachrichtigung per WhatsApp.

Und genau das gibt es jetzt. Unter den Benachrichtigungs-Optionen kann man seine Mobiltelefonnummer hinterlegen und aktivieren, dass man per WhatsApp benachrichtigt werden möchte.

Und so unspektakulär wie das hier aussieht ist es auch, man bekommt eben eine WhatsApp-Nachricht, wenn ein Melder ausgelöst hat.

GSM-Gerät 2 (GG2) – Quellen

Gestern wurde ich angesprochen, ob ich nicht mal den aktuellen Stand der Quellen veröffentlichen könne. Das mache ich natürlich gerne. In dem Zuge möchte ich aber auch noch mal den verschiedenen Projekten danken, die das Ganze erst möglich gemacht haben:

Das eigentliche Markwart-Projekt besteht dann aus folgenden Teilen:

ModulErklärung
DebugOverSoftSerialKleine Bibliothek um Informationen für das Debugging über die SoftSerial auszugeben
SimpleSim800Eine Bibliothek zum Ansteuern des SIM800L
TrapSensorDas eigentliche Programm für den Fallenmelder
DatabaseSQL-Skripte für den Aufbau der DB
HuntingGroundManagerPHP-Code für das Web-Backend auf Basis eines CakePHP

GSM-Gerät 2 (GG2) – Status-Mail

Die letzten Screenshots aus der Anwendung haben es schon angedeutet: Es besteht jetzt auch die Möglichkeit, einen Status-E-Mail zu abonnieren.

Zweimal am Tag wird eine solche Status-Mail initiiert

  • 06:10 Uhr
  • 18:10 Uhr

Warum zu solch komischen Uhrzeiten? Die Melder aktualisieren ihren Status so um 6 Uhr herum. Typischerweise sind dann die letzten Statusmeldungen um 06:05 Uhr eingetrudelt. D.h. einen Status-Mail um 06:10 Uhr bildet sehr gut den aktuellen Status ab.

Die Mail wird pro Revier verschickt:

Inhaltlich orientiert sie sich an der Darstellung im Web-Frontend. Ist ein Benutzer Jäger in mehreren Revieren, so erhält er pro Revier eine Mail.

GSM-Gerät 2 (GG2) – Fangbenachrichtigung

In der neusten Version des Systems ist eine Benachrichtigung der Jäger per E-Mail bei einer Auslösung des Melders eingebaut.

Als Jäger muss man nichts weiter machen, als diese Funktionalität für sich aktivieren. Das geht über einen entsprechenden Menüpunkt in der Web-Oberfläche.

Löst dann ein Melder aus, bekommen alle Jäger eines Reviers, die diese Funktionalität aktiviert haben, ein E-Mail.

In einem der nächsten Entwicklungsschritte wird auch die regelmäßige Status-E-Mail umgesetzt.

GSM-Gerät 2 (GG2) – LAMP-Server

Neben dem eigentlich Fallenmelder vor Ort benötigt man auch noch einen Server, bei dem die Status- und Fangmeldungen auflaufen. Um hier eine vergleichsweise einfache Lösung zu haben, wurde ein LAMP-Server bei den Amazon Web Service gewählt.

LAMP?

  • Linux
  • Apache
  • MySQL
  • PHP

Also ein Rundum-Sorglos-Paket aus einem Open-Source Betriebssystem, einem Web-Server, einem Datenbank-System und einer PHP-Laufzeitumgebung. Das gibt es bei AWS so fertig als Paket, z.B. von Bitnami.

Die Kosten bewegen sich damit in einem definierten Rahmen. Sollte der Server an seine Leistungsgrenzen kommen, kann relativ einfach auf eine größere Instanz migriert werden.

Aktuell liegen die Daten noch in einem Rechenzentrum von Amazon in Ohio (US). Dies ist möglich, da es sich bei den Status- und Fangmeldungen nicht um DSGVO-relevante Daten handelt.

GSM-Gerät 2 (GG2) – Wo sind meine Melder?

Gerade wenn man mit mehreren Personen im Revier die Fangjagd betreibt, kann es vorkommen, dass sich der Standort einer Falle ändert und nicht alle Jagdkameraden gleich Bescheid wissen, wo der neue Standort ist.

Deswegen hat das System eine neue Funktion erhalten, der Benutzer kann in einer Karten den Standort des Melders eintragen. Für das Revier werden dann gleich alle Fallen angezeigt.

An dieser Stelle ein ganz großes Dankeschön an die Entwickler von OpenStreetMap und leaflet.js.

Jetzt kommt bestimmt gleich die Frage auf: Stand nicht in einem älteren Blog-Eintrag, dass der Standort eher in die Revierwelt-App gehört? Ja, das stimmt. Die Schnittstelle da hin lässt aber aktuell noch auf sich warten.

GSM-Gerät 2 (GG2) – Datenbank

GSM-Gerät? Datenbank? Was soll denn das?

Zu dem GSM-Gerät 2 gehört einfach ein Backend, in dem die Daten gesammelt und für den Bediener aufbereitet werden. Und wie das heutzutage so üblich ist, hat dieses Backend darunter eine relationale Datenbank.

Starten wir einfach erst mal mit einem Überblick.

ER-Diagramm

In diesem Diagramm sieht man sehr gut, was da alles so verwaltet wird.

  • Users – die Benutzer im System
  • Grounds – die Reviere
  • Memberships – eine Gast-Zugehörigkeit zu Revieren
    Der Inhaber der Reviere gehört natürlich automatisch dazu
  • Traps – die Fallen
  • TrapHistories – die letzten Meldungen der Falle

Die meisten Felder der Tabellen sind vermutlich selbsterklärend. Näher eingehen muss ich vermutlich nur auf die Felder an der Tabelle Traps.

  • IMEI – Im GSM-Netz ist das eine Identifikationsnummer für das Gerät.
    In diesem System dient das auch dazu, den Melder zu indentifizieren.
  • ICCID – Hinter dieser ID verbirgt sich die Identifikationsnummer der SIM-Karte.
    Für den Benutzer ist das relativ wertlos. Sollten mal Melder „verloren gehen“, kann man mit dieser ID aber die SIM-Karte identifizieren, die gesperrt werden muss.
  • Voltage – Spannung in Millivolt
  • Strength – Eine abstrakte Größe vorgegeben durch das eingesetzte Modul.
    Der Bereich bewegt sich von 1, was ungefähr -109 dBm entspricht, bis zu 30, was ungefähr -53 dBm entspricht.
  • Switch_One_Ok_State – Technisch wollte ich die Option offen halten, dass ggf. auch ein offener Schalter eine scharf gestellte Falle repräsentiert und nicht nur der geschlossene Schalter. Über dieses Feld kann man das beeinflussen.
  • Switch_One_Active – Wird der Schalter gerade genutzt.
    Darüber kann man z.B. auch den Melder außer Betrieb nehmen.

Ggf. werden diese Felder auch noch erweitert. Aktuell steht noch die Idee im Raum, über das GSM-Netz die grobe Geolocation abzufragen.