Skip to content

Commit

Permalink
update samples
Browse files Browse the repository at this point in the history
  • Loading branch information
Цуркан Алексей Владимирович committed May 8, 2024
1 parent d97c6ac commit 21d2433
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
Binary file added img/devTrecker_dhcp1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/devTrecker_dhcp2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 28 additions & 5 deletions samples.md
Original file line number Diff line number Diff line change
Expand Up @@ -989,24 +989,47 @@ scripts.setTimer("toggle_timer2", 0)

```bash
:if ($leaseBound = 1) do={
/ip dhcp-server lease;
/tool fetch url="http://192.168.0.2/api/scripts?action=evalFile&path=presense.lua&param=Online+$leaseActIP+$leaseActMAC" keep-result=no
/tool fetch url="http://192.168.0.2/api/scripts?action=evalFile&path=presense.lua&param=Online+$leaseActIP+$leaseActMAC" keep-result=no
} else={
/tool fetch url="http://192.168.0.2/api/scripts?action=evalFile&path=presense.lua&param=Offline+$leaseActIP+$leaseActMAC" keep-result=no
}
```

необходимо вставить в окно Lease Script в свойствах DHCP сервера Mikrotik.
Таким образом, при каждой регистрации и её удалении в SLS будет вызываться скрипт `presense.lua`, в который будет передан параметр вида
- Online+IP+MAC при подключении устройства
- Offline+IP+MAC при отключении устройства
- `Online+IP+MAC` при подключении устройства
- `Offline+IP+MAC` при отключении устройства

![](/img/devTrecker_dhcp1.png)

Внутри скрипта LUA этот параметр можно принять посредством переменной события `Event.Param` и обработать по своему усмотрению. Например отправить в Telegram:

```lua
telegram.send(Event.Param)
```

Следует отметить, что событие регистрации возникает сразу при подключении, а событие удаления регистрации в пределах времени TTL записи DHCP (10 мин).
Для того чтобы в SLS прилетали регистрации только нужных устройство можно добавить их выборку посредством [регулярного выражения](https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions). Например, так мы выделим IP адреса из диапазона 10-19:

```
^192\\.168\\.0\\.[1].\$
```

```bash
:if ($leaseActIP~"^192\\.168\\.0\\.[1].\$") do={
:if ($leaseBound = 1) do={
/tool fetch url="http://192.168.0.2/api/scripts?action=evalFile&path=presense.lua&param=Online+$leaseActIP+$leaseActMAC" keep-result=no
} else={
/tool fetch url="http://192.168.0.2/api/scripts?action=evalFile&path=presense.lua&param=Offline+$leaseActIP+$leaseActMAC" keep-result=no
}
}
```

Следует отметить, что событие регистрации возникает сразу при подключении, а событие удаления регистрации в пределах времени TTL записи DHCP (10 мин). Для "важных" устройств это время можно уменьшить. Для этого нужно открыть запись аренды (Lease), сделать её статической (Make static), закрыть/открыть и тогда появится возможность для этой записи установить TTL отличный от заданного на уровне сервера:
![](/img/devTrecker_dhcp2.png)

При этом, устройство с данным MAC адресом, будет всегда получать зафиксированный IP адрес.

Также, замечено, что некоторые устройства могут некорректно продлевать аренду адреса. При этом могут возникать ложные срабатывания скрипта. В таком случае воспользуйтесь решением выше.

## Вариант функций для автоматизаций SimpleBind

Expand Down

0 comments on commit 21d2433

Please sign in to comment.