Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


alarmsystem

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
alarmsystem [14.01.2018 08:18] – [Bewegungsalarmsystem] havelockalarmsystem [14.01.2018 19:24] havelock
Zeile 5: Zeile 5:
 Noch implementieren Noch implementieren
   * Konfiguration über ''uci'' bzw. ''/etc/config''   * Konfiguration über ''uci'' bzw. ''/etc/config''
-  * Freifunk-Clientnetzwerk im Fahrzeugknoten deaktivieren, wenn kein Link zu einem anderen Freifunkknoten besteht. +  * Freifunk-Clientnetzwerk im Fahrzeugknoten deaktivieren, wenn kein Link zu einem anderen Freifunkknoten besteht. Befehle dafür:<code> 
- +ip link set down dev client0 
 +ip link set up dev client0 
 +</code>
  
 Dieses System ist natürlich immer im Zusammenhang mit anderen Sicherungssystemen zu sehen. Dieses System ist natürlich immer im Zusammenhang mit anderen Sicherungssystemen zu sehen.
 +
 +Voraussetzung ist, daß im Fahrzeug eine permanente Stromversorgung sichergestellt ist.
  
 Feststellen ob ein Fahrzeug von seinem Parkplatz bewegt wird. Feststellen ob ein Fahrzeug von seinem Parkplatz bewegt wird.
Zeile 37: Zeile 40:
     * Am USB-Anschluß kann ein GPS-Stick angeschlossen werden     * Am USB-Anschluß kann ein GPS-Stick angeschlossen werden
   * WR841N/ND im Fenster   * WR841N/ND im Fenster
 +
 +===== Software =====
 +
 +Das Link-Überwachungsprogramm
 +<file lua neighbourwatch.lua>
 +#!/usr/bin/lua
 +
 +function file_exists(name)
 +    local f=io.open(name,"r")
 +    if f~=nil then io.close(f) return true else return false end
 +end
 +
 +function watch_mac(mac)
 +    command = "batctl n | grep -i " .. mac .. " | tr -s ' ' | cut -d' ' -f4"
 +    local handle = io.popen(command)
 +    local result = handle:read("*a")
 +    handle:close()
 +    return result:match("(.-)%s*$")
 +end
 +
 +counterfile = "/var/run/alarmcounter"
 +lastseen = watch_mac("a2:1b:3a:0b:3e:72")
 +age_seconds = tonumber(lastseen:sub(1, -2)) or 1000
 +if age_seconds > 30 then
 +    if not file_exists(counterfile) then
 +        file = io.open(counterfile, "w")
 +        file:write("1")
 +        file:close()
 +        command = "ssh alarmuser@srv01.ffpi ./alarmmail.sh"
 +        local handle = io.popen(command)
 +        local result = handle:read("*a")
 +        handle:close()
 +    end
 +else
 +    if file_exists(counterfile) then
 +        os.remove(counterfile)
 +    end
 +end
 +</file>
 +
 +Der Cronjob der das Überwachungsscript regelmäßig aufruft
 +<file conf /usr/lib/micron.d/neighbourwatch>
 +* * * * * /root/neighbourwatch.lua
 +</file>
 +
 +Alarmierung momentan per mail
 +<file bash alarmmail.sh>
 +#!/bin/bash
 +mail -s "Alarm: Fahrzeugbewegung" mustermann@example.com << EOF
 +Alarm!
 +Das Fahrzeug /Mein Auto/ wird gerade bewegt.
 +EOF
 +</file>
  
alarmsystem.txt · Zuletzt geändert: 20.01.2018 21:01 von havelock