MikroTik RouterOS Script zum aktivieren und deaktivieren des Alarms anhand verbundener WiFi Clients

Hallo,

möchte hier nur gerne mein RouterOS Script (MikroTik Router, off topic: super Geräte in allen Belangen, frei konfigurier- und programmierbar!) teilen. Das Script schaut nach ob eines unserer Handys aktuell im WLAN ist und schaltet dann E-Mail Benachrichtigung und Push aus/an. SD Aufzeichnungen nach PIR Events werden weiterhin gemacht.

Liebe Grüße,
Daniel

:local ips {192.168.0.102;192.168.0.103}
:local ipcam 192.168.0.7
:local ipcamusr admin
:local ipcampw mypw

:local currentAlarm
:local desiredAlarm true
:local desiredAlarmStr "on"
:local oneDeviceFound false

:foreach v in=$ips do={
  :local tmp [/interface wireless registration-table find where last-ip=$v]
  :if ([:len $tmp]!=0) do={ 
	:set oneDeviceFound true
  }
}

:if ($oneDeviceFound) do={
  :set desiredAlarm false
  :set desiredAlarmStr "off"
}

:local f [/tool fetch url="http://$ipcamusr:$ipcampw@$ipcam/param.cgi\?cmd=getmdalarm&-aname=emailsnap" mode=http output=user as-value]
# $f is array with :len of 3, content in first element

:local tmp [:find [:pick $f 0] "off" -1]
:if ([:len $tmp]=0) do={
  :set currentAlarm true
} else={
  :set currentAlarm false
}

if ($currentAlarm != $desiredAlarm) do={
  /log info "current alarm ($currentAlarm) and desired alarm ($desiredAlarm) differ, changing to alarm ($desiredAlarmStr) on camera."
  /tool fetch url="http://$ipcamusr:$ipcampw@$ipcam/param.cgi\?cmd=setmdalarm&-aname=server&-switch=$desiredAlarmStr&cmd=setmdalarm&-aname=emailsnap&-switch=$desiredAlarmStr" mode=http
}
1 Like

Nachtrag: Lässt sich natürlich über den RouterOS scheduler periodisch ausführen, bei mir 1x pro Minute.