leiweibau / Pi.Alert

Scan the devices connected to your WIFI / LAN and alert you the connection of unknown devices. It also warns if a "always connected" device disconnects. In addition, it is possible to check web services for availability. For this purpose HTTP status codes and the response time of the service are evaluated.
https://leiweibau.net
GNU General Public License v3.0
471 stars 32 forks source link

[Documentation] repeat of "new device" notification on the hour, every hour #384

Closed stanelie closed 2 months ago

stanelie commented 2 months ago

Current Behavior :

Current behavior : On my system, when a new device gets detected, I get a notification. and from this point on, I also get a "New Device" notification about this same device, on the hour, every hour, until I go in and edit the device to uncheck the "new device" tick box.

Expected behavior : I should receive a "New Device" notification only once, when the device is first detected, and no more.

leiweibau commented 2 months ago

Can you Show me your config file?

stanelie commented 2 months ago
# General Settings
# ----------------------
PIALERT_PATH               = '/home/stanelie/pialert'
DB_PATH                    = PIALERT_PATH + '/db/pialert.db'
LOG_PATH                   = PIALERT_PATH + '/log'
PRINT_LOG                  = False
VENDORS_DB                 = '/usr/share/arp-scan/ieee-oui.txt'
PIALERT_APIKEY             = ''
PIALERT_WEB_PROTECTION     = True
PIALERT_WEB_PASSWORD       = ''
NETWORK_DNS_SERVER         = 'localhost'
AUTO_UPDATE_CHECK          = True
AUTO_DB_BACKUP             = False
AUTO_DB_BACKUP_KEEP        = 5
REPORT_NEW_CONTINUOUS      = True
NEW_DEVICE_PRESET_EVENTS   = False
NEW_DEVICE_PRESET_DOWN     = False

# Other Modules
# ----------------------
SCAN_WEBSERVICES           = True
ICMPSCAN_ACTIVE            = True
SATELLITES_ACTIVE          = False

# Special Protocol Scanning
# ----------------------
SCAN_ROGUE_DHCP            = True
DHCP_SERVER_ADDRESS        = '10.8.0.1'

# Custom Cronjobs
# ----------------------
# The shortest interval is 3 minutes. All larger intervals must be integer multiples of 3 minutes.
AUTO_UPDATE_CHECK_CRON     = '0 3,9,15,21 * * *'
AUTO_DB_BACKUP_CRON        = '0 3 */2 * *'
REPORT_NEW_CONTINUOUS_CRON = '0 * * * *'
SPEEDTEST_TASK_CRON        = '00 7,22 * * *'

# Mail-Account Settings
# ----------------------
SMTP_SERVER                = 'smtp.gmail.com'
SMTP_PORT                  = 587
SMTP_USER                  = 'xxx@xxx'
SMTP_PASS                  = ''
SMTP_SKIP_TLS              = False
SMTP_SKIP_LOGIN            = False

# WebGUI Reporting
# ----------------------
REPORT_WEBGUI              = True
REPORT_WEBGUI_WEBMON       = True

# Mail Reporting
# ----------------------
REPORT_MAIL                = False
REPORT_MAIL_WEBMON         = False
REPORT_FROM                = 'Pi.Alert <' + SMTP_USER + '>'
REPORT_TO                  = 'xx@xxx'
REPORT_DEVICE_URL          = 'http://pi.alert/deviceDetails.php?mac='
REPORT_DASHBOARD_URL       = 'http://pi.alert/'

# Pushsafer
# ----------------------
REPORT_PUSHSAFER           = False
REPORT_PUSHSAFER_WEBMON    = False
PUSHSAFER_TOKEN            = 'ApiKey'
PUSHSAFER_DEVICE           = 'a'
PUSHSAFER_PRIO             = 0
PUSHSAFER_SOUND            = 22

# Pushover
# ----------------------
REPORT_PUSHOVER            = False
REPORT_PUSHOVER_WEBMON     = False
PUSHOVER_TOKEN             = '<Token>'
PUSHOVER_USER              = '<User>'
PUSHOVER_PRIO              = 0
PUSHOVER_SOUND             = 'siren'

# NTFY
#---------------------------
REPORT_NTFY                = True
REPORT_NTFY_WEBMON         = True
NTFY_HOST                  = 'https://ntfy.sh'
NTFY_TOPIC                 = 'xxxxx'
NTFY_USER                  = ''
NTFY_PASSWORD              = ''
NTFY_PRIORITY              = 'default'
NTFY_CLICKABLE             = True

# Shoutrrr
# ----------------------
SHOUTRRR_BINARY            = 'armhf'
# SHOUTRRR_BINARY            = 'armhf'
# SHOUTRRR_BINARY            = 'arm64'
# SHOUTRRR_BINARY            = 'x86'

# Telegram via Shoutrrr
# ----------------------
REPORT_TELEGRAM            = False
REPORT_TELEGRAM_WEBMON     = False
TELEGRAM_BOT_TOKEN_URL     = '<Your generated servive URL for telegram - use $HOME/pialert/back/shoutrrr/<your Systemtyp>/shoutrrr generate telegram>'

# DynDNS and IP
# ----------------------
QUERY_MYIP_SERVER          = 'https://myipv4.p1.opendns.com/get_my_ip'
DDNS_ACTIVE                = False
DDNS_DOMAIN                = 'your_domain.freeddns.org'
DDNS_USER                  = 'dynu_user'
DDNS_PASSWORD              = 'A0000000B0000000C0000000D0000000'
DDNS_UPDATE_URL            = 'https://api.dynu.com/nic/update?'

# Automatic Speedtest
# ----------------------
SPEEDTEST_TASK_ACTIVE      = False

# Arp-scan Options & Samples
# ----------------------
ARPSCAN_ACTIVE             = True
MAC_IGNORE_LIST            = []
IP_IGNORE_LIST             = ['10.10.','10.7.0.']
SCAN_SUBNETS               = '--localnet --interface=eth0'
# SCAN_SUBNETS               = '--localnet'
# SCAN_SUBNETS               = '--localnet --interface=eth0'
# SCAN_SUBNETS               = ['192.168.1.0/24 --interface=eth0','192.168.2.0/24 --interface=eth1']

# ICMP Monitoring Options
# ----------------------
ICMP_ONLINE_TEST           = 1
ICMP_GET_AVG_RTT           = 2

# Pi-hole Configuration
# ----------------------
PIHOLE_ACTIVE              = False
PIHOLE_VERSION             = 5
PIHOLE_DB                  = '/etc/pihole/pihole-FTL.db'
PIHOLE6_URL                = ''
PIHOLE6_PASSWORD           = ''
DHCP_ACTIVE                = False
DHCP_LEASES                = '/etc/pihole/dhcp.leases'

# Fritzbox Configuration
# ----------------------
FRITZBOX_ACTIVE            = False
FRITZBOX_IP                = '192.168.17.1'
FRITZBOX_USER              = 'user'
FRITZBOX_PASS              = 'password'

# Mikrotik Configuration
# ----------------------
MIKROTIK_ACTIVE            = False
MIKROTIK_IP                = '10.8.0.1'
MIKROTIK_USER              = ''
MIKROTIK_PASS              = ''

# UniFi Configuration
# -------------------
UNIFI_ACTIVE               = False
UNIFI_IP                   = '10.0.0.2'
UNIFI_API                  = 'v5'
UNIFI_USER                 = 'user'
UNIFI_PASS                 = 'password'
# Possible UNIFI APIs are v4, v5, unifiOS, UDMP-unifiOS, default

# Satellite Configuration
# -----------------------
SATELLITE_PROXY_MODE       = False
SATELLITE_PROXY_URL        = ''

# Maintenance Tasks Cron
# ----------------------
DAYS_TO_KEEP_ONLINEHISTORY = 30
DAYS_TO_KEEP_EVENTS        = 90
leiweibau commented 2 months ago

As long as "REPORT_NEW_CONTINUOUS = True" you will get notifications in an interval defined by "REPORT_NEW_CONTINUOUS_CRON = '0 '"

stanelie commented 2 months ago

Ah! Thanks, I did not know what this option was for exactly. My bad.

leiweibau commented 2 months ago

Is described on the help / FAQ page. Take a look at it. If you have a suggestion for improving the wording, I'll be happy to edit it.

stanelie commented 2 months ago

Maybe it would be useful to include the instructions in the config file itself as comments? That way, there would be no back and forth between the documentation and the config file, and people like me would have answers before posting they post bug reports. 😃

leiweibau commented 2 months ago

With the next update there will be a readme file in the docs folder, which also contains the explanations. I can also add a button that opens the FAQ page in a popup window.

it would be useful to include the instructions in the config file itself as comments

If I write all the notes in the configuration file, it becomes too confusing. For this reason, I restructured the file a little with the last update in order to be able to dispense with comments.

and people like me would have answers before posting they post bug reports.

That's why there's the question then opening a Bug report of whether you've looked in the docs or on the Help / FAQ page 😉