jokob-sk / NetAlertX

🖧🔍 WIFI / LAN intruder detector. Scans for devices connected to your network and alerts you if new and unknown devices are found.
GNU General Public License v3.0
2.57k stars 150 forks source link

OpenWrt Router Returning IP Addresses of Ethernet Devices Connected to it Instead of its Own #586

Closed quinb96 closed 5 months ago

quinb96 commented 5 months ago

Is there an existing issue for this?

Current Behavior

I really enjoy using this docker container. However I have something to report I'm not sure is a bug or is supposed to happen. The device named "Linksys OpenWrt Router" in the screenshot shows having the same ip address as the DietPi device. DietPi and PS4 are connected to this router by ethernet. After going through all of the enabled scan options, it will always return a different ip address. Either it's own ip address which is 10.0.0.80, the DietPi ip address which is 10.0.0.76 or the PS4 ip address which is 10.0.0.171. Due to this behavior, the DietPi and PS4 devices always show as Offline on here due to Pi.Alert identifying the Linksys OpenWrt Router as having those ip addresses. Linksys OpenWrt Router 1

The 2nd screenshot shows the Linksys OpenWrt Router session logs always returning 1 of 3 possible ip addresses. The ip address the Linksys router is supposed to have is 10.0.0.80. Linksys OpenWrt Router Session Logs

3rd screenshot shows all the scanning methods I have enabled. Pi-hole is one of them and it appears to be working fine. pialert settings

4th screenshot is the network topology in Pi.Alert. pialert network topology

Expected Behavior

Pi.Alert to only show the Linksys OpenWrt Router having the 10.0.0.80 ip address and not to return the ip address of the devices connected to it by ethernet.

I have another router on the network named "Main Router" , which is the gateway and it has an ip address of 10.0.0.1. I have a server named "Home Server" connected to the Main Router by ethernet but I've never seen the current behavior explained above happen once between these 2 devices.

I understand how to configure OpenWrt pretty well so I don't know if maybe there's something I need to change on there.

Steps To Reproduce

Wait for all the scanning methods to run through, then check the devices list. The Linksys OpenWrt Router's ip is always changed after that.

pialert.conf

No response

docker-compose.yml

version: "3"
services:
  pialert:
    container_name: pialert
    image: "jokobsk/pi.alert:latest"
    network_mode: "host"
    restart: unless-stopped
    volumes:
      - /home/quin/BackupSSD/pialert:/home/pi/pialert/config
      - /home/quin/BackupSSD/pialert/db:/home/pi/pialert/db
      - /home/quin/BackupSSD/pialert/logs:/home/pi/pialert/front/log
      - /home/quin/BackupSSD/PiHole:/etc/pihole
    environment:
      - TZ=America/Chicago
      - PORT=20211

What branch are you running?

Production

pialert.log

No response

Debug enabled

quinb96 commented 5 months ago

pialert.conf

-----------------AUTOGENERATED FILE-----------------

Generated: 2024-03-11_14-35-53

Config file for the LAN intruder detection app:

https://github.com/jokob-sk/Pi.Alert

-----------------AUTOGENERATED FILE-----------------

General

---------------------------

LOG_LEVEL='verbose' LOG_LEVELmetadata="{}" TIMEZONE='America/Chicago' TIMEZONEmetadata="{}" PLUGINS_KEEP_HIST=250 PLUGINS_KEEP_HISTmetadata="{}" PIALERT_WEB_PROTECTION=True PIALERT_WEB_PROTECTIONmetadata="{}" PIALERT_WEB_PASSWORD = '055490158b30883b44a27ede327b95fe00e617f7f762db27f571584dea9fdf99' PIALERT_WEB_PASSWORD = '055490158b30883b44a27ede327b95fe00e617f7f762db27f571584dea9fdf99' REPORT_DASHBOARD_URL='http://10.0.0.194:20211' REPORT_DASHBOARD_URLmetadata="{}" UI_LANG='English' UI_LANGmetadata="{}" UI_PRESENCE=['online','offline','archived'] UI_PRESENCEmetadata="{}" UI_MY_DEVICES=['online','offline','archived','new','down'] UI_MY_DEVICESmetadata="{}" UI_NOT_RANDOM_MAC=[] UI_NOT_RANDOM_MACmetadata="{}" DAYS_TO_KEEP_EVENTS=90 DAYS_TO_KEEP_EVENTSmetadata="{}" HRS_TO_KEEP_NEWDEV=0 HRS_TO_KEEP_NEWDEV__metadata="{}" API_CUSTOM_SQL='SELECT * FROM Devices WHERE dev_PresentLastScan = 0' API_CUSTOM_SQLmetadata="{}" NETWORK_DEVICE_TYPES=['AP','Gateway','Firewall','Hypervisor','Powerline','Switch','WLAN','PLC','Router','USB LAN Adapter','USB WIFI Adapter','Internet'] NETWORK_DEVICE_TYPESmetadata="{}"

ARPSCAN

---------------------------

SCAN_SUBNETS=['10.0.0.1/24 --interface=enp2s0'] SCAN_SUBNETSmetadata="{}" ARPSCAN_RUN='always_after_scan' ARPSCAN_RUNmetadata="{\"function\": \"RUN\", \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"events\": [\"run\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Specify when your Network-discovery scan will run. Typical setting would be schedule and then you specify a cron-like schedule in the <a href=\\"#ARPSCAN_RUN_SCHD\\">ARPSCAN_RUN_SCHDsetting. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Especifique cu\u00e1ndo se ejecutar\u00e1 su an\u00e1lisis de descubrimiento de red. La configuraci\u00f3n t\u00edpica ser\u00eda schedule y luego se especifica una programaci\u00f3n similar a cron en la configuraci\u00f3n <a href=\\"#ARPSCAN_RUN_SCHD\\">ARPSCAN_RUN_SCHD \"}, {\"language_code\": \"de_de\", \"string\": \"Ausw\u00e4hlen wann der Netzwerkscan laufen soll. Typischerweise wird schedule ausgew\u00e4hlt und ein cron-Intervall in der <a href=\\"#ARPSCAN_RUN_SCHD\\">ARPSCAN_RUN_SCHDEinstellung gesetzt.\"}]}" ARPSCAN_CMD='python3 /home/pi/pialert/front/plugins/arp_scan/script.py userSubnets={subnets}' ARPSCAN_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/arp_scan/script.py userSubnets={subnets}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This should not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando para ejecutar. Esto no debe ser cambiado\"}, {\"language_code\": \"de_de\", \"string\": \"Auszuf\u00fchrender Befehl. Dieser sollte nicht ge\u00e4ndert werden\"}]}" ARPSCAN_RUN_TIMEOUT=300 ARPSCAN_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 300, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, se cancela el script.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" ARPSCAN_RUN_SCHD='/1 ' ARPSCAN_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/5 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#ARPSCAN_RUN\\">ARPSCAN_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering /3 will run the scan every 3 minutes. Will be run NEXT time the time passes.
It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#ARPSCAN_RUN\\">ARPSCAN_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar
/3 ejecutar\u00e1 el escaneo cada 3 minutos. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.
Se recomienda utilizar el mismo intervalo de programaci\u00f3n para todos los complementos que analizan su red.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#ARPSCAN_RUN\\">ARPSCAN_RUN Einstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). /3 * w\u00fcrde den Scan alle 3 Minuten starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.
Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Ger\u00e4ten suchen, auf den gleichen Wert zu setzen.\"}]}" ARPSCAN_WATCH=['Watched_Value1','Watched_Value2'] ARPSCAN_WATCH__metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\", \"Watched_Value2\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Watched\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00eda una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar. \"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen. \"}]}" ARPSCAN_REPORT_ON=['new','watched-changed'] ARPSCAN_REPORT_ONmetadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When should notification be sent out.\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo debe enviarse una notificaci\u00f3n.\"}, {\"language_code\": \"de_de\", \"string\": \"Wann Benachrichtigungen gesendet werden sollen.\"}]}" ARPSCAN_ARGS='sudo arp-scan --ignoredups --retry=6' ARPSCAN_ARGSmetadata="{\"function\": \"ARGS\", \"type\": \"text\", \"default_value\": \"sudo arp-scan --ignoredups --retry=6\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Arguments\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Arguments to run arps-scan with. Recommended and tested only with the setting:
sudo arp-scan --ignoredups --retry=6.\"}]}"

APPRISE

---------------------------

APPRISE_RUN='disabled' APPRISE_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via <a target=\\"_blank\\" href=\\"https://hub.docker.com/r/caronc/apprise\\\">Apprise.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\\"_blank\\" href=\\"https://hub.docker.com/r/caronc/apprise\\\">Apprise.\"}]}" APPRISE_CMD='python3 /home/pi/pialert/front/plugins/_publisher_apprise/apprise.py' APPRISE_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_apprise/apprise.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" APPRISE_RUN_TIMEOUT=10 APPRISE_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" APPRISE_HOST='http://localhost:8000/notify' APPRISE_HOSTmetadata="{\"function\": \"HOST\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Apprise host URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL del host de Apprise\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Apprise host URL starting with http:// or https://. (do not forget to include /notify at the end)\"}, {\"language_code\": \"es_es\", \"string\": \"URL del host de Apprise que comienza con http:// o https://. (no olvide incluir /notify al final)\"}]}" APPRISE_URL='mailto://smtp-relay.sendinblue.com:587?from=user@gmail.com&name=apprise&user=user@gmail.com&pass=password&to=user@gmail.com' APPRISE_URLmetadata="{\"function\": \"URL\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Apprise notification URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL de notificaci\u00f3n de Apprise\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Apprise notification target URL. For example for Telegram it would be tgram://{bot_token}/{chat_id}.\"}, {\"language_code\": \"es_es\", \"string\": \"Informar de la URL de destino de la notificaci\u00f3n. Por ejemplo, para Telegram ser\u00eda tgram://{bot_token}/{chat_id}.\"}]}" APPRISE_PAYLOAD='html' APPRISE_PAYLOAD__metadata="{\"function\": \"PAYLOAD\", \"type\": \"text.select\", \"default_value\": \"html\", \"options\": [\"html\", \"text\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Payload type\"}, {\"language_code\": \"es_es\", \"string\": \"Tipo de carga\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Select the payoad type sent to Apprise. For example html works well with emails, text with chat apps, such as Telegram.\"}, {\"language_code\": \"es_es\", \"string\": \"Seleccione el tipo de carga \u00fatil enviada a Apprise. Por ejemplo, html funciona bien con correos electr\u00f3nicos, text con aplicaciones de chat, como Telegram.\"}]}" APPRISE_SIZE=1024 APPRISE_SIZEmetadata="{\"function\": \"SIZE\", \"type\": \"integer\", \"default_value\": 1024, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Max payload size\"}, {\"language_code\": \"es_es\", \"string\": \"Tama\u00f1o m\u00e1ximo de carga \u00fatil\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The maximum size of the apprise payload as number of characters in the passed string. If above limit, it will be truncated and a (text was truncated) message is appended.\"}, {\"language_code\": \"es_es\", \"string\": \"El tama\u00f1o m\u00e1ximo de la carga \u00fatil de informaci\u00f3n como n\u00famero de caracteres en la cadena pasada. Si supera el l\u00edmite, se truncar\u00e1 y se agregar\u00e1 un mensaje (text was truncated).\"}]}"

SMTP

---------------------------

SMTP_RUN='on_notification' SMTP_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via the Email (SMTP) gateway.\"}, {\"language_code\": \"es_es\", \"string\": \"Si est\u00e1 habilitado, se env\u00eda un correo electr\u00f3nico con una lista de cambios a los que se ha suscrito. Complete tambi\u00e9n todas las configuraciones restantes relacionadas con la configuraci\u00f3n de SMTP a continuaci\u00f3n\"}]}" SMTP_CMD='python3 /home/pi/pialert/front/plugins/_publisher_email/email_smtp.py' SMTP_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_email/email_smtp.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" SMTP_RUN_TIMEOUT=20 SMTP_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 20, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" SMTP_SERVER='smtp.zoho.com' SMTP_SERVER__metadata="{\"function\": \"SERVER\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SMTP server URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL del servidor SMTP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The SMTP server host URL. For example smtp-relay.sendinblue.com. To use Gmail as an SMTP server <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/SMTP.md\\\">follow this guide\"}, {\"language_code\": \"es_es\", \"string\": \"La URL del host del servidor SMTP. Por ejemplo, smtp-relay.sendinblue.com. Para utilizar Gmail como servidor SMTP <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/SMTP.md\\\">siga esta gu\u00eda\"}]}" SMTP_PORT=465 SMTP_PORTmetadata="{\"function\": \"PORT\", \"type\": \"integer\", \"default_value\": 587, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SMTP server PORT\"}, {\"language_code\": \"es_es\", \"string\": \"Puerto del servidor SMTP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Port number used for the SMTP connection. Set to 0 if you do not want to use a port when connecting to the SMTP server.\"}, {\"language_code\": \"es_es\", \"string\": \"N\u00famero de puerto utilizado para la conexi\u00f3n SMTP. Establ\u00e9zcalo en 0 si no desea utilizar un puerto al conectarse al servidor SMTP.\"}]}" SMTP_SKIP_LOGIN=False SMTP_SKIP_LOGINmetadata="{\"function\": \"SKIP_LOGIN\", \"type\": \"boolean\", \"default_value\": false, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Skip authentication\"}, {\"language_code\": \"es_es\", \"string\": \"Omitir autenticaci\u00f3n\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Do not use authentication when connecting to the SMTP server.\"}, {\"language_code\": \"es_es\", \"string\": \"No utilice la autenticaci\u00f3n cuando se conecte al servidor SMTP.\"}]}" SMTP_USER='' SMTP_USERmetadata="{\"function\": \"USER\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SMTP user\"}, {\"language_code\": \"es_es\", \"string\": \"Nombre de usuario SMTP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The user name used to login into the SMTP server (sometimes a full email address).\"}, {\"language_code\": \"es_es\", \"string\": \"El nombre de usuario utilizado para iniciar sesi\u00f3n en el servidor SMTP (a veces, una direcci\u00f3n de correo electr\u00f3nico completa).\"}]}" SMTP_PASS='' SMTP_PASSmetadata="{\"function\": \"PASS\", \"type\": \"password\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SMTP password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a de SMTP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The SMTP server password.\"}, {\"language_code\": \"es_es\", \"string\": \"La contrase\u00f1a del servidor SMTP.\"}]}" SMTP_SKIP_TLS=True SMTP_SKIP_TLSmetadata="{\"function\": \"SKIP_TLS\", \"type\": \"boolean\", \"default_value\": false, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Do not use TLS\"}, {\"language_code\": \"es_es\", \"string\": \"No usar TLS\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Disable TLS when connecting to your SMTP server.\"}, {\"language_code\": \"es_es\", \"string\": \"Deshabilite TLS cuando se conecte a su servidor SMTP.\"}]}" SMTP_FORCE_SSL=True SMTP_FORCE_SSLmetadata="{\"function\": \"FORCE_SSL\", \"type\": \"boolean\", \"default_value\": false, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Force SSL\"}, {\"language_code\": \"es_es\", \"string\": \"Forzar SSL\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Force SSL when connecting to your SMTP server.\"}, {\"language_code\": \"es_es\", \"string\": \"Forzar SSL al conectarse a su servidor SMTP\"}]}" SMTP_REPORT_TO='' SMTP_REPORT_TO__metadata="{\"function\": \"SMTP_REPORT_TO\", \"type\": \"text\", \"default_value\": \"user@gmail.com\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Send email to\"}, {\"language_code\": \"es_es\", \"string\": \"Enviar el email a\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Email address to which the notification will be send to.\"}, {\"language_code\": \"es_es\", \"string\": \"Direcci\u00f3n de correo electr\u00f3nico a la que se enviar\u00e1 la notificaci\u00f3n.\"}]}" SMTP_REPORT_FROM='Pi.Alert <>' SMTP_REPORT_FROMmetadata="{\"function\": \"SMTP_REPORT_FROM\", \"type\": \"text\", \"default_value\": \"Pi.Alert user@gmail.com\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Email subject\"}, {\"language_code\": \"es_es\", \"string\": \"Asunto del email\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Notification email subject line. Some SMTP servers need this to be an email.\"}, {\"language_code\": \"es_es\", \"string\": \"Asunto del correo electr\u00f3nico de notificaci\u00f3n.\"}]}"

MQTT

---------------------------

MQTT_RUN='disabled' MQTT_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via <a target=\\"_blank\\" href=\\"https://www.home-assistant.io/integrations/mqtt/\\\">MQTT to your Home Assistance instance. Usually, on_notification is recommended. See the <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/HOME_ASSISTANT.md\\\">PiAlert Home Assistant guide for details.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\\"_blank\\" href=\\"https://www.home-assistant.io/integrations/mqtt/\\\">MQTT a su Home Assistance.\"}]}" MQTT_CMD='python3 /home/pi/pialert/front/plugins/_publisher_mqtt/mqtt.py devices={devices}' MQTT_CMD__metadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_mqtt/mqtt.py devices={devices}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" MQTT_RUN_SCHD='0 2 3' MQTT_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 3\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#MQTT_RUN\\">MQTT_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#MQTT_RUN\\">MQTT_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiviert, wenn Sie schedule in der <a href=\\"#MQTT_RUN\\">MQTT_RUN-Einstellung ausw\u00e4hlen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-\u00e4hnlichen Format eingeben (z. B. validieren unter <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Wenn Sie beispielsweise 0 4 * eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ ausgef\u00fchrt. Code> den Sie oben festgelegt haben. Wird das N\u00c4CHSTE Mal ausgef\u00fchrt, wenn die Zeit vergeht.\"}]}" MQTT_RUN_TIMEOUT=10 MQTT_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" MQTT_BROKER='192.168.1.2' MQTT_BROKERmetadata="{\"function\": \"BROKER\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT broker URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL del broker MQTT\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"MQTT host URL (do not include http:// or https://).\"}, {\"language_code\": \"es_es\", \"string\": \"URL del host MQTT (no incluya http:// o https://).\"}]}" MQTT_PORT=1883 MQTT_PORTmetadata="{\"function\": \"PORT\", \"type\": \"integer\", \"default_value\": 1883, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT broker port\"}, {\"language_code\": \"es_es\", \"string\": \"Puerto del broker MQTT\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Port number where the broker is listening. Usually 1883.\"}, {\"language_code\": \"es_es\", \"string\": \"Puerto donde escucha el broker MQTT. Normalmente 1883.\"}]}" MQTT_USER='mqtt' MQTT_USER__metadata="{\"function\": \"USER\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT user\"}, {\"language_code\": \"es_es\", \"string\": \"Usuario de MQTT\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"User name used to login into your MQTT broker instance.\"}, {\"language_code\": \"es_es\", \"string\": \"Nombre de usuario utilizado para iniciar sesi\u00f3n en su instancia de agente de MQTT.\"}]}" MQTT_PASSWORD='passw0rd' MQTT_PASSWORDmetadata="{\"function\": \"PASSWORD\", \"type\": \"password\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a de MQTT\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Password used to login into your MQTT broker instance.\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a utilizada para iniciar sesi\u00f3n en su instancia de agente de MQTT.\"}]}" MQTT_QOS=0 MQTT_QOS__metadata="{\"function\": \"QOS\", \"type\": \"integer.select\", \"default_value\": 0, \"options\": [0, 1, 2], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT Quality of Service\"}, {\"language_code\": \"es_es\", \"string\": \"Calidad de servicio MQTT\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Quality of service setting for MQTT message sending. 0 - Low quality to 2 - High quality. The higher the quality the longer the delay.\"}, {\"language_code\": \"es_es\", \"string\": \"Configuraci\u00f3n de calidad de servicio para el env\u00edo de mensajes MQTT. 0: baja calidad a 2: alta calidad. Cuanto mayor sea la calidad, mayor ser\u00e1 el retraso.\"}]}" MQTT_DELAY_SEC=2 MQTT_DELAY_SECmetadata="{\"function\": \"DELAY_SEC\", \"type\": \"integer\", \"default_value\": 2, \"options\": [2, 3, 4, 5], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"MQTT delay per device\"}, {\"language_code\": \"es_es\", \"string\": \"Retraso de MQTT por dispositivo\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"A little hack - delay adding to the queue in case the process is restarted and previous publish processes aborted (it takes ~2s to update a sensor config on the broker). Tested with 2-3 seconds of delay. This delay is only applied when devices are created (during the first notification loop). It doesn not affect subsequent scans or notifications.\"}, {\"language_code\": \"es_es\", \"string\": \"Un peque\u00f1o truco: retrase la adici\u00f3n a la cola en caso de que el proceso se reinicie y los procesos de publicaci\u00f3n anteriores se anulen (se necesitan ~2s para actualizar la configuraci\u00f3n de un sensor en el intermediario). Probado con 2-3 segundos de retraso. Este retraso solo se aplica cuando se crean dispositivos (durante el primer bucle de notificaci\u00f3n). No afecta los escaneos o notificaciones posteriores.\"}]}" MQTT_SEND_STATS=True MQTT_SEND_STATSmetadata="{\"function\": \"SEND_STATS\", \"type\": \"boolean\", \"default_value\": true, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Send stats\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Check to send overal device stats, such as number of Online and Offline devices.\"}]}" MQTT_SEND_DEVICES=True MQTT_SEND_DEVICES__metadata="{\"function\": \"SEND_DEVICES\", \"type\": \"boolean\", \"default_value\": true, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Send devices\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Check to send individual devices to the broker with details, such as is_new, is_present, or mac_address of the devices.\"}]}"

NTFY

---------------------------

NTFY_RUN='disabled' NTFY_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via <a target=\\"_blank\\" href=\\"https://ntfy.sh/\\\">NTFY.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\\"_blank\\" href=\\"https://ntfy.sh/\\\">NTFY.\"}]}" NTFY_CMD='python3 /home/pi/pialert/front/plugins/_publisher_ntfy/ntfy.py' NTFY_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_ntfy/ntfy.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" NTFY_RUN_TIMEOUT=10 NTFY_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" NTFY_HOST='https://ntfy.sh' NTFY_HOSTmetadata="{\"function\": \"HOST\", \"type\": \"text\", \"default_value\": \"https://ntfy.sh\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"NTFY host URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL del host NTFY\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"NTFY host URL starting with http:// or https://. You can use the hosted instance on <a target=\\"_blank\\" href=\\"https://ntfy.sh/\\\">https://ntfy.sh by simply entering https://ntfy.sh.\"}, {\"language_code\": \"es_es\", \"string\": \"URL de host NTFY que comienza con http:// o https://. Puede usar la instancia alojada en <a target=\\"_blank\\" href=\\"https://ntfy.sh/\\\">https://ntfy.sh simplemente ingresando https://ntfy. sh</c\u00f3digo>.\"}]}" NTFY_TOPIC='replace_my_secure_topicname_91h889f28' NTFY_TOPICmetadata="{\"function\": \"TOPIC\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"NTFY topic\"}, {\"language_code\": \"es_es\", \"string\": \"Tema de NTFY\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Your secret topic.\"}, {\"language_code\": \"es_es\", \"string\": \"Tu tema secreto.\"}]}" NTFY_USER='user' NTFY_USER__metadata="{\"function\": \"USER\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"NTFY user\"}, {\"language_code\": \"es_es\", \"string\": \"Usuario de NTFY\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enter user if you need (host) an instance with enabled authetication.\"}, {\"language_code\": \"es_es\", \"string\": \"Ingrese usuario si necesita (alojar) una instancia con autenticaci\u00f3n habilitada.\"}]}" NTFY_PASSWORD='passw0rd' NTFY_PASSWORDmetadata="{\"function\": \"PASSWORD\", \"type\": \"password\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"NTFY password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a de NTFY\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enter password if you need (host) an instance with enabled authetication.\"}, {\"language_code\": \"es_es\", \"string\": \"Ingrese la contrase\u00f1a si necesita (host) una instancia con autenticaci\u00f3n habilitada.\"}]}" NTFY_PRIORITY='urgent' NTFY_PRIORITY__metadata="{\"function\": \"PRIORITY\", \"type\": \"text.select\", \"default_value\": \"urgent\", \"options\": [\"urgent\", \"high\", \"default\", \"low\", \"min\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Message priority\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"All NTFY messages have a priority, which defines how urgently your phone notifies you. On Android, you can set custom notification sounds and vibration patterns on your phone to map to these priorities (see <a href=\\"https://docs.ntfy.sh/subscribe/phone/\\\">Android config).\"}]}"

PUSHOVER

---------------------------

PUSHOVER_RUN='disabled' PUSHOVER_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via <a target=\\"_blank\\" href=\\"https://www.pushover.net/\\\">Pushover.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\\"_blank\\" href=\\"https://www.pushover.net/\\\">Pushover.\"}]}" PUSHOVER_CMD='python3 /home/pi/pialert/front/plugins/_publisher_pushover/pushover.py' PUSHOVER_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_pushover/pushover.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" PUSHOVER_RUN_TIMEOUT=10 PUSHOVER_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}]}" PUSHOVER_USER_KEY='USER_KEY' PUSHOVER_USER_KEYmetadata="{\"function\": \"USER_KEY\", \"type\": \"text\", \"default_value\": \"USER_KEY\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Pushover USER key\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Your secret Pushsafer USER key.\"}]}" PUSHOVER_APP_TOKEN='APP_TOKEN' PUSHOVER_APP_TOKENmetadata="{\"function\": \"APP_TOKEN\", \"type\": \"text\", \"default_value\": \"APP_TOKEN\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Pushover APP Token\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Your Pushover APP Token.\"}]}"

PUSHSAFER

---------------------------

PUSHSAFER_RUN='disabled' PUSHSAFER_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable sending notifications via <a target=\\"_blank\\" href=\\"https://www.pushsafer.com/\\\">Pushsafer.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilitar el env\u00edo de notificaciones a trav\u00e9s de <a target=\\"_blank\\" href=\\"https://www.pushsafer.com/\\\">Pushsafer.\"}]}" PUSHSAFER_CMD='python3 /home/pi/pialert/front/plugins/_publisher_pushsafer/pushsafer.py' PUSHSAFER_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_pushsafer/pushsafer.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" PUSHSAFER_RUN_TIMEOUT=10 PUSHSAFER_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" PUSHSAFER_TOKEN='ApiKey' PUSHSAFER_TOKENmetadata="{\"function\": \"TOKEN\", \"type\": \"text\", \"default_value\": \"ApiKey\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Pushsafer token\"}, {\"language_code\": \"es_es\", \"string\": \"Token de Pushsafer\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Your secret Pushsafer API key (token).\"}, {\"language_code\": \"es_es\", \"string\": \"Su clave secreta de la API de Pushsafer (token).\"}]}"

WEBHOOK

---------------------------

WEBHOOK_RUN='disabled' WEBHOOK_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"test\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"on_notification\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable webhooks for notifications. Webhooks help you to connect to a lot of 3rd party tools, such as IFTTT, Zapier or <a href=\\"https://n8n.io/\\" target=\\"_blank\\">n8n to name a few. Check out this simple <a href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/WEBHOOK_N8N.md\\" target=\\"_blank\\">n8n guide here to get started. If enabled, configure related settings below.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite webhooks para notificaciones. Los webhooks lo ayudan a conectarse a muchas herramientas de terceros, como IFTTT, Zapier o <a href=\\"https://n8n.io/\\" target=\\"_blank\\">n8n, por nombrar algunas. Consulte esta sencilla <a href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/WEBHOOK_N8N.md\\" target=\\"_blank\\">gu\u00eda de n8n aqu\u00ed para obtener comenz\u00f3. Si est\u00e1 habilitado, configure los ajustes relacionados a continuaci\u00f3n.\"}]}" WEBHOOK_CMD='python3 /home/pi/pialert/front/plugins/_publisher_webhook/webhook.py' WEBHOOK_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/_publisher_webhook/webhook.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" WEBHOOK_RUN_TIMEOUT=10 WEBHOOK_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" WEBHOOK_URL='http://n8n.local:5555/webhook-test/aaaaaaaa-aaaa-aaaa-aaaaa-aaaaaaaaaaaa' WEBHOOK_URLmetadata="{\"function\": \"URL\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Target URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL de destino\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Target URL starting with http:// or https://.\"}, {\"language_code\": \"es_es\", \"string\": \"URL de destino comienza con http:// o https://.\"}]}" WEBHOOK_PAYLOAD='json' WEBHOOK_PAYLOADmetadata="{\"function\": \"PAYLOAD\", \"type\": \"text.select\", \"default_value\": \"json\", \"options\": [\"json\", \"html\", \"text\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Payload type\"}, {\"language_code\": \"es_es\", \"string\": \"Tipo de carga\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The Webhook payload data format for the body > attachments > text attribute in the payload json. See an example of the payload <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/back/webhook_json_sample.json\\\">here. (e.g.: for discord use text)\"}, {\"language_code\": \"es_es\", \"string\": \"El formato de datos de carga de Webhook para el atributo body > attachments > text en el json de carga. Vea un ejemplo de la carga <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/back/webhook_json_sample.json\\\">aqu\\u00ed. (por ejemplo: para discord use text)\"}]}" WEBHOOK_REQUEST_METHOD='GET' WEBHOOK_REQUEST_METHODmetadata="{\"function\": \"REQUEST_METHOD\", \"type\": \"text.select\", \"default_value\": \"GET\", \"options\": [\"GET\", \"POST\", \"PUT\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Request method\"}, {\"language_code\": \"es_es\", \"string\": \"M\u00e9todo de solicitud\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The HTTP request method to be used for the webhook call.\"}, {\"language_code\": \"es_es\", \"string\": \"El m\u00e9todo de solicitud HTTP que se utilizar\u00e1 para la llamada de webhook.\"}]}" WEBHOOK_SIZE=1024 WEBHOOK_SIZEmetadata="{\"function\": \"SIZE\", \"type\": \"integer\", \"default_value\": 1024, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Max payload size\"}, {\"language_code\": \"es_es\", \"string\": \"Tama\u00f1o m\u00e1ximo de carga \u00fatil\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The maximum size of the webhook payload as number of characters in the passed string. If above limit, it will be truncated and a (text was truncated) message is appended.\"}, {\"language_code\": \"es_es\", \"string\": \"El tama\u00f1o m\u00e1ximo de la carga \u00fatil del webhook como n\u00famero de caracteres en la cadena pasada. Si supera el l\u00edmite, se truncar\u00e1 y se agregar\u00e1 un mensaje (text was truncated).\"}]}" WEBHOOK_SECRET='' WEBHOOK_SECRETmetadata="{\"function\": \"SECRET\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"HMAC Secret\"}, {\"language_code\": \"es_es\", \"string\": \"\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When set, use this secret to generate the SHA256-HMAC hex digest value of the request body, which will be passed as the X-Webhook-Signature header to the request. You can find more information <a target=\\"_blank\\" href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/WEBHOOK_SECRET.md\\\">here.\"}]}"

CSVBCKP

---------------------------

CSVBCKP_RUN='schedule' CSVBCKP_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann laufen\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the backup should be created. A daily or weekly SCHEDULE is a good option.\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo se debe crear la copia de seguridad. Un SCHEDULE diario o semanal es una buena opci\u00f3n.\"}, {\"language_code\": \"de_de\", \"string\": \"Wann das Backup erstellt werden soll. Ein t\u00e4glicher oder w\u00f6chentlicher SCHEDULE ist eine gute Option.\"}]}" CSVBCKP_CMD='python3 /home/pi/pialert/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}' CSVBCKP_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" CSVBCKP_RUN_SCHD='0 2 3' CSVBCKP_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 3\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#CSVBCKP_RUN\\">CSVBCKP_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#CSVBCKP_RUN\\">CSVBCKP_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiviert, wenn Sie schedule in der <a href=\\"#CSVBCKP_RUN\\">CSVBCKP_RUN-Einstellung ausw\u00e4hlen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-\u00e4hnlichen Format eingeben (z. B. validieren unter <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Wenn Sie beispielsweise 0 4 * eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ ausgef\u00fchrt. Code> den Sie oben festgelegt haben. Wird das N\u00c4CHSTE Mal ausgef\u00fchrt, wenn die Zeit vergeht.\"}]}" CSVBCKP_RUN_TIMEOUT=30 CSVBCKP_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeit\u00fcberschreitung\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" CSVBCKP_overwrite=False CSVBCKP_overwritemetadata="{\"function\": \"overwrite\", \"type\": \"boolean\", \"default_value\": false, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Overwrite file\"}, {\"language_code\": \"es_es\", \"string\": \"Sobrescribir archivo\"}, {\"language_code\": \"de_de\", \"string\": \"Datei \u00fcberschreiben\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"If the devices.csv file should be always overwritten. If disabled, the date and time is added to the name.\"}, {\"language_code\": \"es_es\", \"string\": \"Si el archivo devices.csv siempre debe sobrescribirse. Si est\u00e1 deshabilitado, la fecha y la hora se agregan al nombre.\"}, {\"language_code\": \"de_de\", \"string\": \"Wenn die Datei devices.csv immer \u00fcberschrieben werden soll. Wenn deaktiviert, werden dem Namen Datum und Uhrzeit hinzugef\u00fcgt.\"}]}" CSVBCKP_location='/home/pi/pialert/config' CSVBCKP_locationmetadata="{\"function\": \"location\", \"type\": \"text\", \"default_value\": \"/home/pi/pialert/config\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"File location\"}, {\"language_code\": \"es_es\", \"string\": \"Ubicaci\u00f3n del archivo\"}, {\"language_code\": \"de_de\", \"string\": \"Speicherort\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Where the devices.csv file should be saved. For example /home/pi/pialert/config.\"}, {\"language_code\": \"es_es\", \"string\": \"Donde se debe guardar el archivo devices.csv. Por ejemplo /home/pi/pialert/config.\"}, {\"language_code\": \"de_de\", \"string\": \"Wo die Datei devices.csv gespeichert werden soll. Zum Beispiel /home/pi/pialert/config.\"}]}"

DBCLNP

---------------------------

DBCLNP_RUN='schedule' DBCLNP_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann laufen\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the cleanup should be performed. An hourly or daily SCHEDULE is a good option.\"}]}" DBCLNP_CMD='python3 /home/pi/pialert/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}' DBCLNP_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" DBCLNP_RUN_SCHD='/30 ' DBCLNP_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/30 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#DBCLNP_RUN\\">DBCLNP_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#DBCLNP_RUN\\">DBCLNP_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiviert, wenn Sie schedule in der <a href=\\"#DBCLNP_RUN\\">DBCLNP_RUN-Einstellung ausw\u00e4hlen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-\u00e4hnlichen Format eingeben (z. B. validieren unter <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Wenn Sie beispielsweise 0 4 * eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ ausgef\u00fchrt. Code> den Sie oben festgelegt haben. Wird das N\u00c4CHSTE Mal ausgef\u00fchrt, wenn die Zeit vergeht.\"}]}" DBCLNP_RUN_TIMEOUT=30 DBCLNP_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeit\u00fcberschreitung\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" DBCLNP_NOTIFI_HIST=100 DBCLNP_NOTIFI_HISTmetadata="{\"function\": \"NOTIFI_HIST\", \"type\": \"integer\", \"default_value\": 100, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Notifications History\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"How many historical entries of Notifications should be kept. This influences how many entries are also available in the Report section in the UI\"}]}"

DDNS

---------------------------

DDNS_RUN='disabled' DDNS_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the plugin should run. An hourly or daily SCHEDULE is a good option.\"}, {\"language_code\": \"de_de\", \"string\": \"Wann das Plugin ausgef\u00fchrt werden soll. Eine st\u00fcndliche oder t\u00e4gliche SCHEDULE wird empfohlen.\"}]}" DDNS_CMD='python3 /home/pi/pialert/front/plugins/ddns_update/script.py prev_ip={prev_ip} DDNS_UPDATE_URL={DDNS_UPDATE_URL} DDNS_USER={DDNS_USER} DDNS_PASSWORD={DDNS_PASSWORD} DDNS_DOMAIN={DDNS_DOMAIN} ' DDNS_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/ddns_update/script.py prev_ip={prev_ip} DDNS_UPDATE_URL={DDNS_UPDATE_URL} DDNS_USER={DDNS_USER} DDNS_PASSWORD={DDNS_PASSWORD} DDNS_DOMAIN={DDNS_DOMAIN} \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" DDNS_RUN_SCHD='/5 ' DDNS_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/5 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#DDNS_RUN\\">DDNS_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#DDNS_RUN\\">DDNS_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#DDNS_RUN\\">DDNS_RUN Einstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). 0 4 * w\u00fcrde den Scan t\u00e4glich um 4 Uhr in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">oben ausgew\u00e4hlten TIMEZONE starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.\"}]}" DDNS_RUN_TIMEOUT=30 DDNS_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" DDNS_DOMAIN='your_domain.freeddns.org' DDNS_DOMAIN__metadata="{\"function\": \"DOMAIN\", \"type\": \"text\", \"default_value\": \"your_domain.freeddns.org\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"DynDNS domain URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL del dominio DynDNS\"}, {\"language_code\": \"de_de\", \"string\": \"DynDNS Domain URL\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"DynDNS host URL (do not include http:// or https://).\"}, {\"language_code\": \"es_es\", \"string\": \"URL del host DynDNS (no incluya http:// o https://).\"}, {\"language_code\": \"de_de\", \"string\": \"DynDNS Host URL (do not include http:// or https://).\"}]}" DDNS_USER='dynu_user' DDNS_USERmetadata="{\"function\": \"USER\", \"type\": \"text\", \"default_value\": \"dynu_user\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"DynDNS user\"}, {\"language_code\": \"es_es\", \"string\": \"Usuario de DynDNS\"}, {\"language_code\": \"de_de\", \"string\": \"DynDNS Benutzer\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The username used to login to the DynDNS service (sometimes a full email address).\"}, {\"language_code\": \"es_es\", \"string\": \"El nombre de usuario utilizado para iniciar sesi\u00f3n en el servicio DynDNS (a veces, una direcci\u00f3n de correo electr\u00f3nico completa).\"}, {\"language_code\": \"de_de\", \"string\": \"Benutzername, welcher zum Login beim DynDNS-Service verwendet wird (manchmal die E-Mail-Adresse).\"}]}" DDNS_PASSWORD='A0000000B0000000C0000000D0000000' DDNS_PASSWORDmetadata="{\"function\": \"PASSWORD\", \"type\": \"password\", \"default_value\": \"A0000000B0000000C0000000D0000000\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"DynDNS password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a de DynDNS\"}, {\"language_code\": \"de_de\", \"string\": \"DynDNS Passwort\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The DynDNS service access password\"}, {\"language_code\": \"es_es\", \"string\": \"La contrase\u00f1a de acceso al servicio DynDNS.\"}, {\"language_code\": \"de_de\", \"string\": \"Passwort, welches zum Login beim DynDNS-Service verwendet wird.\"}]}" DDNS_UPDATE_URL='https://api.dynu.com/nic/update?' DDNS_UPDATE_URL__metadata="{\"function\": \"UPDATE_URL\", \"type\": \"text\", \"default_value\": \"https://api.dynu.com/nic/update?\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"DynDNS update URL\"}, {\"language_code\": \"es_es\", \"string\": \"URL de actualizaci\u00f3n de DynDNS\"}, {\"language_code\": \"de_de\", \"string\": \"DynDNS Aktualisierungs-URL\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Update URL starting with http:// or https://.\"}, {\"language_code\": \"es_es\", \"string\": \"Actualice la URL que comienza con http:// o https://.\"}, {\"language_code\": \"de_de\", \"string\": \"Aktualisierungs-URL beginnend mit http:// oder https://.\"}]}" DDNS_WATCH=['Watched_Value1'] DDNS_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Previous IP (not recommended)
  • Watched_Value2 unused
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen.
  • Watched_Value1 ist die Vorige IP (nicht empfohlen)
  • Watched_Value2 ist nicht in Verwendung
  • Watched_Value3 ist nicht in Verwendung
  • Watched_Value4 ist nicht in Verwendung
\"}]}" DDNS_REPORT_ON=['new','watched-changed'] DDNS_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige nur bei diesen Status. new bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. watched-changed bedeutet eine ausgew\u00e4hlte Watched_ValueN-Spalte hat sich ge\u00e4ndert.\"}]}"

DHCPLSS

---------------------------

DHCPLSS_RUN='disabled' DHCPLSS_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable import of devices from dhcp.leases files. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) or after you update your settings. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite la importaci\u00f3n de dispositivos desde archivos dhcp.leases. Si selecciona schedule, se aplican las configuraciones de programaci\u00f3n de abajo. Si selecciona once, el an\u00e1lisis se ejecuta solo una vez al inicio de la aplicaci\u00f3n (contenedor) o despu\u00e9s de actualizar su configuraci\u00f3n.\"}, {\"language_code\": \"de_de\", \"string\": \"Aktiviere den Import aus dhcp.leases-Dateien. Wenn schedule ausgew\u00e4hlt ist, werden die unten gesetzten Zeitplan-Einstellungen verwendet. Ist once ausgew\u00e4hlt, so wird bei jedem Start der Applikation (Container) und nach jedem Speichern der Einstellungen der Imnport durchgef\u00fchrt.\"}]}" DHCPLSS_CMD='python3 /home/pi/pialert/front/plugins/dhcp_leases/script.py paths={paths}' DHCPLSS_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/dhcp_leases/script.py paths={paths}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Auszuf\u00fchrender Befehl\"}]}" DHCPLSS_paths_to_check=['/mnt/dhcp1.leases','/mnt/dhcp2.leases','/etc/pihole/dhcp.leases'] DHCPLSS_paths_to_checkmetadata="{\"function\": \"paths_to_check\", \"type\": \"list\", \"default_value\": [\"/mnt/dhcp1.leases\", \"/mnt/dhcp2.leases\"], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Files\"}, {\"language_code\": \"es_es\", \"string\": \"Archivos\"}, {\"language_code\": \"de_de\", \"string\": \"Dateien\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Add all dhcp.leases mapped paths to watch. Enter full path within the container, e.g. /mnt/dhcp2.leases. You must map these files accordingly in your docker-compose.yml file. (If you are mapping a PiHole dhcp.leases file the path in the container must contain pihole, e.g.: :/etc/pihole/dhcp.leases)\"}, {\"language_code\": \"es_es\", \"string\": \"Agregue todas las rutas asignadas de dhcp.leases para observar. Ingrese la ruta completa dentro del contenedor, p.e. /mnt/dhcp2.leases. Debe asignar estos archivos en consecuencia en su archivo docker-compose.yml. (Si est\u00e1 asignando un archivo PiHole dhcp.leases, la ruta en el contenedor debe contener pihole, por ejemplo: :/etc/pihole/dhcp.leases)\"}, {\"language_code\": \"de_de\", \"string\": \"Alle zu \u00fcberwachenden dhcp.leases-Pfade hinzuf\u00fcgen. Den absoluten Pfad innerhalb des Containers angeben, z.B. /mnt/dchp2.leases. Diese Dateien m\u00fcssen korrekt in der docker-compose.yml gemapped werden. Wird eine PiHole dhcp.leases-Datei in den Container gemapped, so muss der Pfad im Container pihole inkludieren, z.B. :/etc/pihole/dhcp.leases\"}]}" DHCPLSS_RUN_SCHD='0 2 ' DHCPLSS_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#DHCPLSS_RUN\\">DHCPLSS_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.
It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#DHCPLSS_RUN\\">DHCPLSS_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4
ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#INTRNT_RUN\\">INTRNT_RUNEinstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). 0 4 * w\u00fcrde den Scan t\u00e4glich um 4 Uhr in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">oben ausgew\u00e4hlten TIMEZONE starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.
Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Ger\u00e4ten suchen, auf den gleichen Wert zu setzen.\"}]}" DHCPLSS_RUN_TIMEOUT=5 DHCPLSS_RUN_TIMEOUT
metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 5, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" DHCPLSS_WATCH=['Watched_Value1','Watched_Value4'] DHCPLSS_WATCH__metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\", \"Watched_Value4\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Active
  • Watched_Value2 is Hostname
  • Watched_Value3 is hardware
  • Watched_Value4 is State
\"}, {\"language_code\": \"es_es\", \"string\": \"Enviar una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 est\u00e1 activo
  • Watched_Value2 es el nombre de host
  • Watched_Value3 es hardware
  • Watched_Value4 es Estado
\"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen.
  • Watched_Value1 ist der Aktivstatus
  • Watched_Value2 ist der Hostname
  • Watched_Value3 ist die Hardware
  • Watched_Value4 ist der Zustand
\"}]}" DHCPLSS_REPORT_ON=['new','watched-changed'] DHCPLSS_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige nur bei diesen Status. new bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. watched-changed bedeutet eine ausgew\u00e4hlte Watched_ValueN-Spalte hat sich ge\u00e4ndert.\"}]}"

DHCPSRVS

---------------------------

DHCPSRVS_RUN='disabled' DHCPSRVS_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecutar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable a regular scan of rogue DHCP servers. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) or after you update your settings. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite un escaneo regular de servidores DHCP no autorizados. Si selecciona schedule, se aplican las configuraciones de programaci\u00f3n de abajo. Si selecciona once, el an\u00e1lisis se ejecuta solo una vez al inicio de la aplicaci\u00f3n (contenedor) o despu\u00e9s de actualizar su configuraci\u00f3n.\"}]}" DHCPSRVS_CMD='python3 /home/pi/pialert/front/plugins/dhcp_servers/script.py' DHCPSRVS_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/dhcp_servers/script.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" DHCPSRVS_RUN_SCHD='0 2 ' DHCPSRVS_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Programar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#DHCPSRVS_RUN\\">DHCPSRVS_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n de <a href=\\"#DHCPSRVS_RUN\\">DHCPSRVS_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}]}" DHCPSRVS_RUN_TIMEOUT=10 DHCPSRVS_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" DHCPSRVS_WATCH=['Watched_Value1'] DHCPSRVS_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Domain Name Server
  • Watched_Value2 is IP Offered
  • Watched_Value3 is Interface
  • Watched_Value4 is Router
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 es servidor de nombres de dominio
  • Watched_Value2 es IP ofrecida
  • Watched_Value3 es Interfaz
  • Watched_Value4 es enrutador
\"}]}" DHCPSRVS_REPORT_ON=['new','watched-changed'] DHCPSRVS_REPORT_ON
metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}]}"

INTRNT

---------------------------

INTRNT_RUN='schedule' INTRNT_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the plugin should run. An hourly or daily SCHEDULE is a good option.\"}, {\"language_code\": \"de_de\", \"string\": \"Wann das Plugin ausgef\u00fchrt werden soll. Eine st\u00fcndliche oder t\u00e4gliche SCHEDULE wird empfohlen.\"}]}" INTRNT_CMD='python3 /home/pi/pialert/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}' INTRNT_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" INTRNT_DIG_GET_IP_ARG='-4 myip.opendns.com @resolver1.opendns.com' INTRNT_DIG_GET_IP_ARGmetadata="{\"function\": \"INTRNT_DIG_GET_IP_ARG\", \"type\": \"text\", \"default_value\": \"-4 myip.opendns.com @resolver1.opendns.com\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Internet IP discovery\"}, {\"language_code\": \"es_es\", \"string\": \"Descubrir de IP de Internet\"}, {\"language_code\": \"de_de\", \"string\": \"Erkennung externer IP (\\"Internet IP\\")\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Change the <a href=\\"https://linux.die.net/man/1/dig\\" target=\\"_blank\\">dig utility arguments if you have issues resolving your Internet IP. Arguments are added at the end of the following command: dig +short .\"}, {\"language_code\": \"es_es\", \"string\": \"Cambie los argumentos de la <a href=\\"https://linux.die.net/man/1/dig\\" target=\\"_blank\\">utilidad de dig si tiene problemas para resolver su IP de Internet. Los argumentos se agregan al final del siguiente comando: dig +short .\"}, {\"language_code\": \"de_de\", \"string\": \"\u00c4ndere die Argumente des <a href=\\"https://linux.die.net/man/1/dig\\" target=\\"_blank\\">dig Dienstprogramms, wenn Probleme beim Aufl\u00f6sen der externen IP auftreten. Argumente werden an das Ende des folgenden Befehls angeh\u00e4ngt: dig +short .\"}]}" INTRNT_RUN_SCHD='/5 *' INTRNT_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/5 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#INTRNT_RUN\\">INTRNT_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes. It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#INTRNT_RUN\\">INTRNT_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#INTRNT_RUN\\">INTRNT_RUNEinstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). 0 4 w\u00fcrde den Scan t\u00e4glich um 4 Uhr in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">oben ausgew\u00e4hlten TIMEZONE starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.
Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Ger\u00e4ten suchen, auf den gleichen Wert zu setzen.\"}]}" INTRNT_RUN_TIMEOUT=30 INTRNT_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" INTRNT_WATCH=['Watched_Value1'] INTRNT_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Previous IP (not recommended)
  • Watched_Value2 unused
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen.
  • Watched_Value1 ist die Vorige IP (nicht empfohlen)
  • Watched_Value2 ist nicht in Verwendung
  • Watched_Value3 ist nicht in Verwendung
  • Watched_Value4 ist nicht in Verwendung
\"}]}" INTRNT_REPORT_ON=['new','watched-changed'] INTRNT_REPORT_ON
metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige nur bei diesen Status. new bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. watched-changed bedeutet eine ausgew\u00e4hlte Watched_ValueN-Spalte hat sich ge\u00e4ndert.\"}]}"

INTRSPD

---------------------------

INTRSPD_RUN='disabled' INTRSPD_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable a regular internet speedtest. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) for the time specified in <a href=\\"#INTRSPD_RUN_TIMEOUT\\">INTRSPD_RUN_TIMEOUT setting.\"}, {\"language_code\": \"de_de\", \"string\": \"Aktiviere periodische Internetgeschwindigkeitstests. Wenn schedule ausgew\u00e4hlt ist, werden die Einstellungen von unten genutzt. Bei once wird der Test nur einmal beim Start der Applikation (Container) f\u00fcr die unten in der <a href=\\"#INTRSPD_RUN_TIMEOUT\\">INTRSPD_RUN_TIMEOUT Einstellung gesetzten Zeit durchgef\u00fchrt.\"}]}" INTRSPD_CMD='python3 /home/pi/pialert/front/plugins/internet_speedtest/script.py' INTRSPD_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/internet_speedtest/script.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Auszuf\u00fchrender Befehl\"}]}" INTRSPD_RUN_SCHD='/30 ' INTRSPD_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/30 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#INTRSPD_RUN\\">INTRSPD_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#INTRSPD_RUN\\">INTRSPD_RUN. Aseg\u00farese de ingresar el schedule en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingrese 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 am en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE que configur\u00f3 arriba . Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#INTRSPD_RUN\\">INTRSPD_RUN Einstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). 0 4 * w\u00fcrde den Scan t\u00e4glich um 4 Uhr in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">oben ausgew\u00e4hlten TIMEZONE starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.
Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Ger\u00e4ten suchen, auf den gleichen Wert zu setzen.\"}]}" INTRSPD_RUN_TIMEOUT=60 INTRSPD_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 60, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" INTRSPD_WATCH=[] INTRSPD_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Download speed (not recommended)
  • Watched_Value2 is Upload speed (not recommended)
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen.
  • Watched_Value1 ist die Download-Geschwindigkeit (nicht empfohlen)
  • Watched_Value2 ist die Upload-Geschwindigkeit (nicht empfohlen)
  • Watched_Value3 ist nicht in Verwendung
  • Watched_Value4 ist nicht in Verwendung
\"}]}" INTRSPD_REPORT_ON=[] INTRSPD_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que seleccion\u00f3 Watched_ValueN Las columnas cambiaron.\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige nur bei diesen Status. new bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. watched-changed bedeutet eine ausgew\u00e4hlte Watched_ValueN-Spalte hat sich ge\u00e4ndert.\"}]}"

MAINT

---------------------------

MAINT_RUN='schedule' MAINT_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann laufen\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the maintenance tasks should run. A daily or weekly SCHEDULE is a good option.\"}]}" MAINT_CMD='python3 /home/pi/pialert/front/plugins/maintenance/maintenance.py' MAINT_CMD__metadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/maintenance/maintenance.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" MAINT_RUN_SCHD='0 2 3' MAINT_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 3\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#MAINT_RUN\\">MAINT_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#MAINT_RUN\\">MAINT_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiviert, wenn Sie schedule in der <a href=\\"#CSVBCKP_RUN\\">CSVBCKP_RUN-Einstellung ausw\u00e4hlen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-\u00e4hnlichen Format eingeben (z. B. validieren unter <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Wenn Sie beispielsweise 0 4 * eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ ausgef\u00fchrt. Code> den Sie oben festgelegt haben. Wird das N\u00c4CHSTE Mal ausgef\u00fchrt, wenn die Zeit vergeht.\"}]}" MAINT_RUN_TIMEOUT=30 MAINT_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeit\u00fcberschreitung\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" MAINT_LOG_LENGTH=250000 MAINT_LOG_LENGTHmetadata="{\"function\": \"LOG_LENGTH\", \"type\": \"integer\", \"default_value\": 250000, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Log length\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"How many last pialert.log lines to keep. If LOG_LEVEL is set to debug the app generates about 10000 lines per hour, so when debugging an issue the recommended setting should cover the bug occurence timeframe. For example for a bug with a 3 day periodical appearence the value 1000000 should be sufficient. Setting this value to 1000000 generates approximatelly a 50MB pialert.log file. Set to 0 to disable log purging.\"}]}"

NEWDEV

---------------------------

NEWDEV_ignored_MACs=[] NEWDEV_ignored_MACsmetadata="{\"function\": \"ignored_MACs\", \"type\": \"list\", \"default_value\": [], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Ignored MACs\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"List of MACs to ignore. Use % as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications.

For example 02:42:ac:% to filter out docker containers.\"}]}" NEWDEV_ignored_IPs=[] NEWDEV_ignored_IPs
metadata="{\"function\": \"ignored_IPs\", \"type\": \"list\", \"default_value\": [], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Ignored IPs\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"List of IPs to ignore. Use % as a wildcard. Ignored devices will not be shown anywhere in the UI or notifications.

For example 192.168.3.% to filter out a subnet.\"}]}" NEWDEV_dev_MAC='' NEWDEV_dev_MACmetadata="{\"function\": \"dev_MAC\", \"type\": \"readonly\", \"maxLength\": 50, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device MAC\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The MAC address of the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_Name='(unknown)' NEWDEV_dev_Namemetadata="{\"function\": \"dev_Name\", \"type\": \"readonly\", \"maxLength\": 50, \"default_value\": \"(unknown)\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Name\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The name of the device. Uneditable as internal functionality is dependent on specific new device names.\"}]}" NEWDEV_dev_Ownermetadata="{\"function\": \"dev_Owner\", \"type\": \"string\", \"maxLength\": 30, \"default_value\": \"House\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Owner\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The owner of the device.\"}]}" NEWDEV_dev_DeviceTypemetadata="{\"function\": \"dev_DeviceType\", \"type\": \"string\", \"maxLength\": 30, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Type\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The type of the device.\"}]}" NEWDEV_dev_Vendor='' NEWDEV_dev_Vendormetadata="{\"function\": \"dev_Vendor\", \"type\": \"readonly\", \"maxLength\": 250, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Vendor\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The vendor of the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_Favorite=False NEWDEV_dev_Favoritemetadata="{\"function\": \"dev_Favorite\", \"type\": \"integer.checkbox\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Favorite Device\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether the device is marked as a favorite.\"}]}" NEWDEV_dev_Groupmetadata="{\"function\": \"dev_Group\", \"type\": \"string\", \"maxLength\": 10, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Group\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The group to which the device belongs.\"}]}" NEWDEV_dev_Commentsmetadata="{\"function\": \"dev_Comments\", \"type\": \"string\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Comments\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Additional comments or notes about the device.\"}]}" NEWDEV_dev_FirstConnection='' NEWDEV_dev_FirstConnectionmetadata="{\"function\": \"dev_FirstConnection\", \"type\": \"readonly\", \"format\": \"date-time\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"First Connection\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The date and time of the first connection with the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_LastConnection='' NEWDEV_dev_LastConnectionmetadata="{\"function\": \"dev_LastConnection\", \"type\": \"readonly\", \"format\": \"date-time\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Last Connection\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The date and time of the last connection with the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_LastIP='' NEWDEV_dev_LastIPmetadata="{\"function\": \"dev_LastIP\", \"type\": \"readonly\", \"maxLength\": 50, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Last IP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The last known IP address of the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_StaticIP=False NEWDEV_dev_StaticIPmetadata="{\"function\": \"dev_StaticIP\", \"type\": \"integer.checkbox\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Static IP\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether the device has a static IP address.\"}]}" NEWDEV_dev_ScanCycle=True NEWDEV_dev_ScanCyclemetadata="{\"function\": \"dev_ScanCycle\", \"type\": \"integer.checkbox\", \"default_value\": 1, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Scan Cycle\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The default value of the Scan device dropdown. Enable if newly discovered devices should be scanned.\"}]}" NEWDEV_dev_LogEvents=True NEWDEV_dev_LogEventsmetadata="{\"function\": \"dev_LogEvents\", \"type\": \"integer.checkbox\", \"default_value\": 1, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Log Events\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether events related to the device shouldbe logged.\"}]}" NEWDEV_dev_AlertEvents=True NEWDEV_dev_AlertEventsmetadata="{\"function\": \"dev_AlertEvents\", \"type\": \"integer.checkbox\", \"default_value\": 1, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Alert Events\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether events related to the device should trigger alerts. The default value of the Alert All Events checkbox.\"}]}" NEWDEV_dev_AlertDeviceDown=False NEWDEV_dev_AlertDeviceDownmetadata="{\"function\": \"dev_AlertDeviceDown\", \"type\": \"integer.checkbox\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Alert Device Down\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether an alert should be triggered when the device goes down. The default value of the Alert Down checkbox.\"}]}" NEWDEV_dev_SkipRepeated=0 NEWDEV_dev_SkipRepeatedmetadata="{\"function\": \"dev_SkipRepeated\", \"type\": \"integer\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Skip Repeated\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The default value of the Skip repeated notifications for dropdown. Enter number of hours for which repeated notifications should be ignored for. If you enter 0 then you get notified on all events.\"}]}" NEWDEV_dev_LastNotification='' NEWDEV_dev_LastNotificationmetadata="{\"function\": \"dev_LastNotification\", \"type\": \"readonly\", \"format\": \"date-time\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Last Notification\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The date and time of the last notification sent for the device. Uneditable - Autodetected.\"}]}" NEWDEV_dev_PresentLastScan=True NEWDEV_dev_PresentLastScanmetadata="{\"function\": \"dev_PresentLastScan\", \"type\": \"integer.checkbox\", \"default_value\": 1, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Present Last Scan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether the device should be marked as present after detected in a scan.\"}]}" NEWDEV_dev_NewDevice=True NEWDEV_dev_NewDevicemetadata="{\"function\": \"dev_NewDevice\", \"type\": \"integer.checkbox\", \"default_value\": 1, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"New Device\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether the device is considered a new device. The default value of the New Device checkbox.\"}]}" NEWDEV_dev_Locationmetadata="{\"function\": \"dev_Location\", \"type\": \"string\", \"maxLength\": 250, \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Location\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The location of the device.\"}]}" NEWDEV_dev_Archived=False NEWDEV_dev_Archivedmetadata="{\"function\": \"dev_Archived\", \"type\": \"integer.checkbox\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Archived\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Indicates whether the device is archived. The default value of the Archived checkbox.\"}]}" NEWDEV_dev_Network_Node_MAC_ADDR__metadata="{\"function\": \"dev_Network_Node_MAC_ADDR\", \"type\": \"string\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Network Node MAC Address\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The MAC address of the network node.\"}]}" NEWDEV_dev_Network_Node_port='0' NEWDEV_dev_Network_Node_portmetadata="{\"function\": \"dev_Network_Node_port\", \"type\": \"readonly\", \"default_value\": 0, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Network Node Port\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The port number of the network node. Uneditable.\"}]}" NEWDEV_dev_Iconmetadata="{\"function\": \"dev_Icon\", \"type\": \"string\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Device Icon\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The icon associated with the device. Check the <a href=\\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/ICONS.md\\" target=\\"_blank\\">documentation on icons for more details.\"}]}"

NMAP

---------------------------

NMAP_RUN='always_after_scan' NMAP_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecutar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable a regular Nmap scan on your network on all devices. The scheduling settings can be found below. If you select once Nmap is run only once on start for the time specified in <a href=\\"#NMAP_TIMEOUT\\">NMAP_TIMEOUT setting.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite un escaneo regular de Nmap en su red en todos los dispositivos. Los ajustes de programaci\u00f3n se pueden encontrar a continuaci\u00f3n. Si selecciona una vez, Nmap se ejecuta solo una vez al inicio durante el tiempo especificado en la configuraci\u00f3n de <a href=\\"#NMAP_TIMEOUT\\">NMAP_TIMEOUT\"}]}" NMAP_CMD='python3 /home/pi/pialert/front/plugins/nmap_scan/script.py ips={ips} macs={macs} timeout={timeout} args={args}' NMAP_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/nmap_scan/script.py ips={ips} macs={macs} timeout={timeout} args={args}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SQL to run\"}, {\"language_code\": \"es_es\", \"string\": \"Consulta SQL\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"This calls the script responsible for executing the NMAP scan.\"}, {\"language_code\": \"es_es\", \"string\": \"Esto llama al script responsable de ejecutar el escaneo NMAP.\"}]}" NMAP_ARGS='-p -10000' NMAP_ARGS__metadata="{\"function\": \"ARGS\", \"type\": \"text\", \"default_value\": \"-p -10000\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Arguments\"}, {\"language_code\": \"es_es\", \"string\": \"Argumentos\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Arguments used to run the Nmap scan. Be careful to specify <a href=\\"https://linux.die.net/man/1/nmap\\" target=\\"_blank\\">the arguments correctly. For example -p -10000 scans ports from 1 to 10000.\"}, {\"language_code\": \"es_es\", \"string\": \"Argumentos utilizados para ejecutar el an\u00e1lisis de Nmap. Tenga cuidado de especificar <a href=\\"https://linux.die.net/man/1/nmap\\" target=\\"_blank\\">los argumentos correctamente. Por ejemplo, -p -10000 escanea los puertos del 1 al 10000.\"}]}" NMAP_RUN_SCHD='0 2 ' NMAP_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#NMAP_RUN\\">NMAP_RUN setting. Make sure you enter the schedule in the correct cron-like format.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona programar en la configuraci\u00f3n de <a href=\\"#NMAP_RUN\\">NMAP_RUN. Aseg\u00farese de ingresar el cronograma en el formato tipo cron correcto.\"}]}" NMAP_RUN_TIMEOUT=30 NMAP_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Max run time per device in seconds.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo de ejecuci\u00f3n por dispositivo en segundos.\"}]}" NMAP_WATCH=['Watched_Value1','Watched_Value2'] NMAP_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is service type (e.g.: http, ssh)
  • Watched_Value2 is Status (open or closed)
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 es el tipo de servicio (p. ej., http, ssh)
  • Watched_Value2 es el estado (abierto o cerrado)
  • Watched_Value3 no utilizado
  • Watched_Value4 no utilizado
\"}]}" NMAP_REPORT_ON=['new','watched-changed'] NMAP_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que seleccion\u00f3 Watched_ValueN Las columnas cambiaron.\"}]}"

NTFPRCS

---------------------------

NTFPRCS_INCLUDED_SECTIONS=['new_devices','down_devices','events'] NTFPRCS_INCLUDED_SECTIONSmetadata="{\"function\": \"NTFPRCS_INCLUDED_SECTIONS\", \"type\": \"text.multiselect\", \"default_value\": [\"new_devices\", \"down_devices\", \"events\"], \"options\": [\"new_devices\", \"down_devices\", \"events\", \"plugins\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Notify on\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtigungen\"}, {\"language_code\": \"es_es\", \"string\": \"Notificar en\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Specifies which events trigger notifications. Remove the event type(s) you do not want to get notified on. This setting overrides device-specific settings in the UI. (CTRL + Click to select/deselect).\"}, {\"language_code\": \"de_de\", \"string\": \"Spezifiziert, bei welchen Events Benachrichtigungen versendet werden. Entfernen Sie die Eventtypen, bei welchen Sie nicht benachrichtigt werden wollen. Diese Einstellung \u00fcberschreibt ger\u00e4tespezifische Einstellungen im UI. (STRG + klicken zum aus-/abw\u00e4hlen).\"}, {\"language_code\": \"es_es\", \"string\": \"Especifica que eventos env\u00edan notificaciones. Elimina los tipos de eventos de los que no quieras recibir notificaciones. Este ajuste sobreescribe los ajustes espec\u00edficos de los dispositivos en la interfaz. (CTRL + Clic para seleccionar / deseleccionar).\"}]}" NTFPRCS_alert_down_time=5 NTFPRCS_alert_down_time__metadata="{\"function\": \"alert_down_time\", \"type\": \"integer\", \"default_value\": 5, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Alert Down After\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"After how many minutes a device is reported as down and a notification is sent.\"}]}" NTFPRCS_new_dev_condition='' NTFPRCS_new_dev_conditionmetadata="{\"function\": \"new_dev_condition\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"New Devices Filter\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"You can specify a SQL where condition to filter out New Devices from notifications. For example AND dev_LastIP NOT LIKE '192.168.3.%' will always exlude New Device notifications for all devices with the IP starting with 192.168.3.%.\"}]}" NTFPRCS_event_condition='' NTFPRCS_event_condition__metadata="{\"function\": \"event_condition\", \"type\": \"text\", \"default_value\": \"\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Events Filter\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"You can specify a SQL where condition to filter out Events from notifications. For example AND dev_LastIP NOT LIKE '192.168.3.%' will always exlude New Device notifications for all devices with the IP starting with 192.168.3.%.\"}]}"

NSLOOKUP

---------------------------

NSLOOKUP_RUN='always_after_scan' NSLOOKUP_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"before_name_updates\", \"options\": [\"disabled\", \"before_name_updates\", \"on_new_device\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann laufen\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the plugin should be executed. If enabled this will execute the scan until there are no (unknown) or (name not found) devices. Setting this to on_new_device or a daily schedule is recommended.\"}]}" NSLOOKUP_CMD='python3 /home/pi/pialert/front/plugins/nslookup_scan/nslookup.py' NSLOOKUP_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/nslookup_scan/nslookup.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" NSLOOKUP_RUN_SCHD='/30 ' NSLOOKUP_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/30 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#NSLOOKUP_RUN\\">NSLOOKUP_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#NSLOOKUP_RUN\\">NSLOOKUP_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiviert, wenn Sie schedule in der <a href=\\"#NSLOOKUP_RUN\\">NSLOOKUP_RUN-Einstellung ausw\u00e4hlen. Stellen Sie sicher, dass Sie den Zeitplan im richtigen Cron-\u00e4hnlichen Format eingeben (z. B. validieren unter <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Wenn Sie beispielsweise 0 4 * eingeben, wird der Scan nach 4 Uhr morgens in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ ausgef\u00fchrt. Code> den Sie oben festgelegt haben. Wird das N\u00c4CHSTE Mal ausgef\u00fchrt, wenn die Zeit vergeht.\"}]}" NSLOOKUP_RUN_TIMEOUT=10 NSLOOKUP_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeit\u00fcberschreitung\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}"

PHOLUS

---------------------------

PHOLUS_RUN='always_after_scan' PHOLUS_RUNmetadata="{\"function\": \"RUN\", \"type\": \"text.select\", \"default_value\": \"on_new_device\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"events\": [\"run\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecutar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"<a href=\\"https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins/pholus_scan/pholus\\" target=\\"_blank\\" >Pholus is a sniffing tool to discover additional information about the devices on the network, including the device name. If enabled this will execute the scan before every network scan cycle until there are no (unknown) or (name not found) devices. Please be aware it can spam the network with unnecessary traffic. Depends on the <a onclick=\\"toggleAllSettings()\\" href=\\"#SCAN_SUBNETS\\">SCAN_SUBNETS setting. For a scheduled or one-off scan, check the <a href=\\"#PHOLUS_RUN\\">PHOLUS_RUN setting.Specify when your Name-discovery scan will run. Typical setting would be on_new_device or schedule and then you specify a cron-like schedule in the <a href=\\"#PHOLUS_RUN_SCHD\\">PHOLUS_RUN_SCHDsetting.\"}, {\"language_code\": \"es_es\", \"string\": \"<a href=\\"https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins/pholus_scan/pholus\\" target=\\"_blank\\" >Pholus es una herramienta de rastreo para descubrir informaci\u00f3n adicional sobre los dispositivos en la red, incluido el nombre del dispositivo. Si est\u00e1 habilitado, ejecutar\u00e1 el escaneo antes de cada ciclo de escaneo de red hasta que no haya dispositivos (unknown) o (name not found). Tenga en cuenta que puede enviar spam a la red con tr\u00e1fico innecesario. Depende de la configuraci\u00f3n de <a onclick=\\"toggleAllSettings()\\" href=\\"#SCAN_SUBNETS\\">SCAN_SUBNETS. Para un an\u00e1lisis programado o \u00fanico, verifique la configuraci\u00f3n de <a href=\\"#PHOLUS_RUN\\">PHOLUS_RUN.\"}]}" PHOLUS_CMD='python3 /home/pi/pialert/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}' PHOLUS_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This should not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando para ejecutar. Esto no debe ser cambiado\"}]}" PHOLUS_RUN_TIMEOUT=300 PHOLUS_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 300, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Network scan time in seconds. Pholus scan will always run this long. The longer it runs the more device names might be resolved. Will be divided by the number of subnets.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de escaneo de red en segundos. El escaneo de Pholus siempre durar\u00e1 este tiempo. Cuanto m\u00e1s tiempo se ejecute, m\u00e1s nombres de dispositivos se podr\u00e1n resolver. Se dividir\u00e1 por el n\u00famero de subredes.\"}]}" PHOLUS_RUN_SCHD='30 3 *' PHOLUS_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"30 3 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#PHOLUS_RUN\\">PHOLUS_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 30 3 will run the scan at 3:30 am. Will be run NEXT time the time passes.
\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#PHOLUS_RUN\\">PHOLUS_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato cron correcto (por ejemplo, validar en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, al ingresar 30 3 * se ejecutar\u00e1 el escaneo a las 3:30 am. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.
\"}]}" PHOLUS_DAYS_DATA=30 PHOLUS_DAYS_DATAmetadata="{\"function\": \"DAYS_DATA\", \"type\": \"integer\", \"default_value\": 30, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Retenci\u00f3n de datos\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"How many days of Pholus scan entries should be kept (globally, not device specific!) Enter 0 to disable.\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ntos d\u00edas de entradas de escaneo de Pholus deben conservarse (globalmente, \u00a1no espec\u00edfico del dispositivo!). El archivo <a href=\\"/maintenance.php#tab_Logging\\">pialert_pholus.log no se modifica. Introduzca 0 para desactivar.\"}]}" PHOLUS_WATCH=['Watched_Value1','Watched_Value2','Watched_Value3'] PHOLUS_WATCH__metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\", \"Watched_Value2\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Watched\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Info
  • Watched_Value2 is Record type
  • Watched_Value3 is Info
  • Watched_Value4 is N/A
\"}, {\"language_code\": \"es_es\", \"string\": \"Enviar una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + Clic para seleccionar/deseleccionar.
  • Watched_Value1 es Informaci\u00f3n
  • Watched_Value2 es Tipo de registro
  • Watched_Value3 es La informaci\u00f3n
  • Watched_Value4 es N/A
\"}]}" PHOLUS_REPORT_ON=['new','watched-changed','missing-in-last-scan'] PHOLUS_REPORT_ON
metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When should notification be sent out.\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo debe enviarse una notificaci\u00f3n.\"}]}"

PIHOLE

---------------------------

PIHOLE_RUN='always_after_scan' PIHOLE_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecutar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Specify when your PiHole device import from the PiHole database will run. The typical setting would be schedule and then you specify a cron-like schedule in the <a href=\\"#PIHOLE_RUN_SCHD\\">PIHOLE_RUN_SCHDsetting. If enabled, you must map the pihole db into your container to the :/etc/pihole/pihole-FTL.db mount path as specified in the DB_PATH setting. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Especifique cu\u00e1ndo se ejecutar\u00e1 la importaci\u00f3n de su dispositivo PiHole desde la base de datos de PiHole. La configuraci\u00f3n t\u00edpica ser\u00eda schedule y luego especifica una programaci\u00f3n similar a cron en la configuraci\u00f3n <a href=\\"#PIHOLE_RUN_SCHD\\">PIHOLE_RUN_SCHD. Si est\u00e1 habilitado, debe asignar la base de datos pihole en su contenedor a la ruta de montaje :/etc/pihole/pihole-FTL.db como se especifica en la configuraci\u00f3n DB_PATH.\"}]}" PIHOLE_CMD_OLD='SELECT n.hwaddr AS Object_PrimaryID, {s-quote}null{s-quote} AS Object_SecondaryID, datetime() AS DateTime, na.ip AS Watched_Value1, n.lastQuery AS Watched_Value2, na.name AS Watched_Value3, n.macVendor AS Watched_Value4, {s-quote}null{s-quote} AS Extra, n.hwaddr AS ForeignKey FROM EXTERNAL_PIHOLE.Network AS n LEFT JOIN EXTERNAL_PIHOLE.Network_Addresses AS na ON na.network_id = n.id WHERE n.hwaddr NOT LIKE {s-quote}ip-%{s-quote} AND n.hwaddr is not {s-quote}00:00:00:00:00:00{s-quote} AND na.ip is not null' PIHOLE_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"SELECT n.hwaddr AS Object_PrimaryID, {s-quote}null{s-quote} AS Object_SecondaryID, datetime() AS DateTime, na.ip AS Watched_Value1, n.lastQuery AS Watched_Value2, na.name AS Watched_Value3, n.macVendor AS Watched_Value4, {s-quote}null{s-quote} AS Extra, n.hwaddr AS ForeignKey FROM EXTERNAL_PIHOLE.Network AS n LEFT JOIN EXTERNAL_PIHOLE.Network_Addresses AS na ON na.network_id = n.id WHERE n.hwaddr NOT LIKE {s-quote}ip-%{s-quote} AND n.hwaddr is not {s-quote}00:00:00:00:00:00{s-quote} AND na.ip is not null\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"SQL to run\"}, {\"language_code\": \"es_es\", \"string\": \"Consulta SQL\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"This SQL query is used to populate the coresponding UI tables under the Plugins section. This particular one selects data from a mapped PiHole SQLite database and maps it to the corresponding Plugin columns.\"}, {\"language_code\": \"es_es\", \"string\": \"Esta consulta SQL se usa para completar las tablas de IU correspondientes en la secci\u00f3n Complementos. Este en particular selecciona datos de una base de datos PiHole SQLite asignada y los asigna a las columnas correspondientes del complemento.\"}]}" PIHOLE_DB_PATH='/etc/pihole/pihole-FTL.db' PIHOLE_DB_PATHmetadata="{\"function\": \"DB_PATH\", \"type\": \"text\", \"default_value\": \"/etc/pihole/pihole-FTL.db\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"DB Path\"}, {\"language_code\": \"es_es\", \"string\": \"Ruta de la base de datos\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Required setting for the sqlite-db-query plugin type. Is used to mount an external SQLite database and execute the SQL query stored in the CMD setting.\"}, {\"language_code\": \"es_es\", \"string\": \"Configuraci\u00f3n requerida para el tipo de complemento sqlite-db-query. Se utiliza para montar una base de datos SQLite externa y ejecutar la consulta SQL almacenada en la configuraci\u00f3n CMD.\"}]}" PIHOLE_RUN_SCHD='/30 *' PIHOLE_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"/30 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Programar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#ARPSCAN_RUN\\">ARPSCAN_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering /30 will run the scan every 30 minutes. Will be run NEXT time the time passes.
It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#ARPSCAN_RUN\\">ARPSCAN_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar /30 * ejecutar\u00e1 el escaneo cada 30 minutos. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.
Se recomienda utilizar el mismo intervalo de programaci\u00f3n para todos los complementos que analizan su red.\"}]}" PIHOLE_WATCH=['Watched_Value1','Watched_Value2','Watched_Value3'] PIHOLE_WATCH__metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\", \"Watched_Value2\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is IP
  • Watched_Value2 is Last Query
  • Watched_Value3 is Name
  • Watched_Value4 is N/A
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 es IP
  • Watched_Value2 es Proveedor
  • Watched_Value3 is es Interfaz
  • Watched_Value4 es N/A
\"}]}" PIHOLE_REPORT_ON=['new','watched-changed','missing-in-last-scan'] PIHOLE_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When should notification be sent out.\"}, {\"language_code\": \"es_es\", \"string\": \"\u00bfCu\u00e1ndo se debe enviar la notificaci\u00f3n?.\"}]}"

SETPWD

---------------------------

SETPWD_RUN='before_config_save' SETPWD_RUNmetadata="{\"function\": \"RUN\", \"events\": [], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"before_config_save\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Set to before_config_save and specify password to reset your pasword in SETPWD_password.\"}, {\"language_code\": \"es_es\", \"string\": \"Configure en before_config_save y especifique la contrase\u00f1a para restablecer su contrase\u00f1a en SETPWD_password. Puede establecer deshabilitado una vez que se cambia la contrase\u00f1a.\"}]}" SETPWD_CMD='/home/pi/pialert/back/pialert-cli set_password {password}' SETPWD_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"/home/pi/pialert/back/pialert-cli set_password {password}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" SETPWD_password='qbytes14' SETPWD_password__metadata="{\"function\": \"password\", \"type\": \"password\", \"maxLength\": 50, \"default_value\": \"123456\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The default password is 123456. To change it, you can either use this plugin (follow the instructions in the SETPWD_RUN setting) or run /home/pi/pialert/back/pialert-cli set_password {password} in the container.\"}, {\"language_code\": \"es_es\", \"string\": \"La contrase\u00f1a predeterminada es 123456. Para cambiar la contrase\u00f1a, ejecute /home/pi/pialert/back/pialert-cli set_password {password} en el contenedor\"}]}"

SNMPDSC

---------------------------

SNMPDSC_RUN='disabled' SNMPDSC_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable import of devices from a SNMP enabled device. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) or after you update your settings. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite la importaci\u00f3n de dispositivos desde un dispositivo habilitado para SNMP. Si selecciona schedule, se aplican las configuraciones de programaci\u00f3n de abajo. Si selecciona once, el an\u00e1lisis se ejecuta solo una vez al inicio de la aplicaci\u00f3n (contenedor) o despu\u00e9s de actualizar su configuraci\u00f3n.\"}]}" SNMPDSC_CMD='python3 /home/pi/pialert/front/plugins/snmp_discovery/script.py routers={s-quote}{routers}{s-quote}' SNMPDSC_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/snmp_discovery/script.py routers={s-quote}{routers}{s-quote}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. Not recommended to change.\"}, {\"language_code\": \"es_es\", \"string\": \"Comando para ejecutar. No se recomienda cambiar.\"}]}" SNMPDSC_routers=['snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1.2.1.3.1.1.2'] SNMPDSC_routersmetadata="{\"function\": \"routers\", \"type\": \"list\", \"default_value\": [\"snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1.2.1.3.1.1.2\"], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Routers\"}, {\"language_code\": \"es_es\", \"string\": \"Routers\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"A list of snmpwalk commands to execute against IP addresses of roputers/switches with SNMP turned on.

Example with the router on the IP 192.168.1.1:
snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1.2.1.3.1.1.2

Only IPv4 supported. Authentication is not supported. More info on the plugin here.\"}, {\"language_code\": \"es_es\", \"string\": \"Una lista de comandos snmpwalk para ejecutar en direcciones IP de computadoras/conmutadores con SNMP activado.

Ejemplo con el enrutador en la IP 192.168.1.1:
snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1. 2.1.3.1.1.2

Solo se admite IPv4. No se admite la autenticaci\u00f3n. M\u00e1s informaci\u00f3n sobre el complemento aqu\u00ed.\"}]}" SNMPDSC_RUN_SCHD='0 2 ' SNMPDSC_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#SNMPDSC_RUN\\">SNMPDSC_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.
It's recommended to use the same schedule interval for all plugins responsible for discovering new devices. \"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#SNMPDSC_RUN\\">SNMPDSC_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4
ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}]}" SNMPDSC_RUN_TIMEOUT=5 SNMPDSC_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 5, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se excede este tiempo, el script se cancela..\"}]}" SNMPDSC_WATCH=['Watched_Value1'] SNMPDSC_WATCH
metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Hostname (not discoverable)
  • Watched_Value2 is Router IP
  • Watched_Value3 is not used
  • Watched_Value4 is not used
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 es el nombre de host (no detectable)
  • Watched_Value2 es la IP del enrutador
  • Watched_Value3< /code> no se utiliza
  • Watched_Value4 no se utiliza
\"}]}" SNMPDSC_REPORT_ON=['new','watched-changed'] SNMPDSC_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}]}"

UNDIS

---------------------------

UNDIS_RUN='always_after_scan' UNDIS_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecuta\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When enabled, ONCE is the preferred option. It runs at startup and after every save of the config here.
Changes will only show in the devices after the next scan!\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando est\u00e1 habilitado, ONCE es la opci\u00f3n preferida. Se ejecuta al inicio y despu\u00e9s de cada guardado de la configuraci\u00f3n aqu\u00ed.
\u00a1Los cambios solo se mostrar\u00e1n en los dispositivos despu\u00e9s del pr\u00f3ximo escaneo!\"}, {\"language_code\": \"de_de\", \"string\": \"Wenn dieses Plugin aktiviert ist, ist once die bevorzugte Methode. Das Plugin wird dann bei jedem Start und nach jedem Speichern der Einstellungen ausgef\u00fchrt.
\u00c4nderungen scheinen in den Ger\u00e4ten erst nach dem n\u00e4chsten Scan auf!\"}]}" UNDIS_CMD='python3 /home/pi/pialert/front/plugins/undiscoverables/script.py devices={devices}' UNDIS_CMD__metadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/undiscoverables/script.py devices={devices}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" UNDIS_RUN_TIMEOUT=10 UNDIS_RUN_TIMEOUT
metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 10, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitlimit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" UNDIS_WATCH='[]' UNDIS_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"readonly\", \"default_value\": [], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Undiscoverable Devices can not change their status, no watch is enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Los dispositivos no detectables no pueden cambiar su estado, ning\u00fan reloj est\u00e1 habilitado.\"}, {\"language_code\": \"de_de\", \"string\": \"Status von nicht erkennbaren Ger\u00e4ten k\u00f6nnen sich nicht \u00e4ndern, keine \u00dcberwachung aktiviert.\"}]}" UNDIS_REPORT_ON='[]' UNDIS_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"readonly\", \"default_value\": [], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"No notifications will be sent.\"}, {\"language_code\": \"es_es\", \"string\": \"No se enviar\u00e1n notificaciones.\"}, {\"language_code\": \"de_de\", \"string\": \"Keine Benachrichtigungen werden versendet.\"}]}" UNDIS_devices_to_import=['dummy_router'] UNDIS_devices_to_importmetadata="{\"function\": \"devices_to_import\", \"type\": \"list\", \"default_value\": [\"dummy_router\"], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"UnDiscoverable Devices\"}, {\"language_code\": \"es_es\", \"string\": \"Dispositivo no detectable\"}, {\"language_code\": \"de_de\", \"string\": \"Nicht erkennbare Ger\u00e4te\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Devices to be added to the devices list.\"}, {\"language_code\": \"es_es\", \"string\": \"Dispositivos que se a\u00f1adir\u00e1n a la lista de dispositivos.\"}, {\"language_code\": \"de_de\", \"string\": \"Ger\u00e4te, welche der Ger\u00e4teliste hinzugef\u00fcgt werden.\"}]}"

UNFIMP

---------------------------

UNFIMP_RUN='disabled' UNFIMP_RUNmetadata="{\"default_value\": \"disabled\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable import of devices from a UNIFI controller. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) or after you update your settings. \u26a0 Use the same schedule if you have multiple <i class=\\"fa-solid fa-magnifying-glass-plus\\"> Device scanners enabled.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite la importaci\u00f3n de dispositivos desde un controlador UNIFI. Si selecciona schedule, se aplican las configuraciones de programaci\u00f3n de abajo. Si selecciona once, el an\u00e1lisis se ejecuta solo una vez al iniciar la aplicaci\u00f3n (contenedor) o despu\u00e9s de actualizar su configuraci\u00f3n.\"}, {\"language_code\": \"de_de\", \"string\": \"Aktiviere den Import von einem UNIFI controller. Bei schedule werden die Richtzeiten von weiter unten verwendet. Bei der Auswahl once der Import wird einmalig beim Start der Applikation (container), oder nach einem Update der Einstellungen durchgef\u00fchrt.\"}], \"function\": \"RUN\", \"events\": [\"run\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Ausf\u00fchrungszeitpunkt\"}], \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"type\": \"text.select\"}" UNFIMP_CMD='python3 /home/pi/pialert/front/plugins/unifi_import/script.py username={username} password={password} host={host} sites={sites} port={port} verifyssl={verifyssl} version={version} fullimport={fullimport}' UNFIMP_CMDmetadata="{\"default_value\": \"python3 /home/pi/pialert/front/plugins/unifi_import/script.py username={username} password={password} host={host} sites={sites} port={port} verifyssl={verifyssl} version={version} fullimport={fullimport}\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. Not recommended to change.\"}, {\"language_code\": \"es_es\", \"string\": \"Comando para ejecutar. No se recomienda cambiar.\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl der ausgef\u00fchrt wird. Anpassung nicht empfohlen\"}], \"function\": \"CMD\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"options\": [], \"type\": \"text\"}" UNFIMP_username='' UNFIMP_usernamemetadata="{\"default_value\": \"\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"The username used to login into your UNIFI controller. It is recommended to create a read-only user account.\"}, {\"language_code\": \"es_es\", \"string\": \"El nombre de usuario utilizado para iniciar sesi\u00f3n en su controlador UNIFI. Se recomienda crear una cuenta de usuario de s\u00f3lo lectura.\"}], \"function\": \"username\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Username\"}, {\"language_code\": \"es_es\", \"string\": \"Nombre de usuario\"}], \"options\": [], \"type\": \"text\"}" UNFIMP_password='' UNFIMP_password__metadata="{\"default_value\": \"\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"The password used to login into your UNIFI controller.\"}, {\"language_code\": \"es_es\", \"string\": \"La contrase\u00f1a utilizada para iniciar sesi\u00f3n en su controlador UNIFI.\"}], \"function\": \"password\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Password\"}, {\"language_code\": \"es_es\", \"string\": \"Contrase\u00f1a\"}], \"options\": [], \"type\": \"password\"}" UNFIMP_host='192.168.1.1' UNFIMP_hostmetadata="{\"default_value\": \"192.168.1.1\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"The host (IP) where the UNIFI controller is runnig. Do NOT include the protocol (e.g. https://)\"}, {\"language_code\": \"es_es\", \"string\": \"El host (IP) donde se ejecuta el controlador UNIFI. NO incluya el protocolo (por ejemplo, https://)\"}], \"function\": \"host\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Host\"}, {\"language_code\": \"es_es\", \"string\": \"Host\"}], \"options\": [], \"type\": \"text\"}" UNFIMP_port='8443' UNFIMP_portmetadata="{\"default_value\": \"8443\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"The port number where the UNIFI controller is runnig. Usually it is 8443, for UDM(P) devices its 443.\"}, {\"language_code\": \"es_es\", \"string\": \"El n\u00famero de puerto donde se ejecuta el controlador UNIFI. Normalmente es 8443.\"}], \"function\": \"port\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Port number\"}, {\"language_code\": \"es_es\", \"string\": \"N\u00famero de puerto\"}], \"options\": [], \"type\": \"text\"}" UNFIMP_verifyssl='false' UNFIMP_verifyssl__metadata="{\"default_value\": \"false\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"verify SSL certificate validity true|false.\"}, {\"language_code\": \"es_es\", \"string\": \"verificar la validez del certificado SSL true|false.\"}], \"function\": \"verifyssl\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"verify SSL\"}, {\"language_code\": \"es_es\", \"string\": \"verificar SSL\"}], \"options\": [\"true\", \"false\"], \"type\": \"text.select\"}" UNFIMP_version='v4' UNFIMP_versionmetadata="{\"function\": \"version\", \"type\": \"text\", \"default_value\": \"v4\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"API version\"}, {\"language_code\": \"es_es\", \"string\": \"Versi\u00f3n API\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The base version of the Unify controller API. Supported values as of time of writing are v4|v5|unifiOS|UDMP-unifiOS.\"}, {\"language_code\": \"es_es\", \"string\": \"La versi\u00f3n base de la API del controlador Unify. Los valores admitidos al momento de escribir este art\u00edculo son v4|v5|unifiOS|UDMP-unifiOS.\"}]}" UNFIMP_sites=['default'] UNFIMP_sitesmetadata="{\"default_value\": [\"default\"], \"description\": [{\"language_code\": \"en_us\", \"string\": \"The sites you want to connect to. Usually it is only one and the name is default. Check the URL in your UniFi controller UI if unsure.\"}, {\"language_code\": \"es_es\", \"string\": \"Los sitios a los que desea conectarse. Generalmente es solo uno y el nombre es default. Verifique la URL en la interfaz de usuario de su controlador UniFi si no est\u00e1 seguro.\"}], \"function\": \"sites\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"UNIFI sites\"}, {\"language_code\": \"es_es\", \"string\": \"Sitios UNIFI\"}], \"options\": [], \"type\": \"list\"}" UNFIMP_RUN_SCHD='0 2 ' UNFIMP_RUN_SCHD__metadata="{\"default_value\": \"0 2 \", \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#UNFIMP_RUN\\">UNFIMP_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.
It's recommended to use the same schedule interval for all plugins responsible for discovering new devices. \"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#UNFIMP_RUN\\">UNFIMP_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4
ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}], \"function\": \"RUN_SCHD\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}], \"options\": [], \"type\": \"text\"}" UNFIMP_RUN_TIMEOUT=5 UNFIMP_RUN_TIMEOUTmetadata="{\"default_value\": 5, \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Laufzeit des Scripts. Nach Ablauf der Zeit wird das Script abgebrochen.\"}], \"function\": \"RUN_TIMEOUT\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"options\": [], \"type\": \"integer\"}" UNFIMP_WATCH=['Watched_Value1','Watched_Value4'] UNFIMP_WATCHmetadata="{\"default_value\": [\"Watched_Value1\", \"Watched_Value4\"], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is Hostname
  • Watched_Value2 is Vendor
  • Watched_Value3 is Type
  • Watched_Value4 is Online
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Utilice CTRL + clic para seleccionar/deseleccionar.
  • Watched_Value1 es el nombre de host
  • Watched_Value2 es el proveedor
  • Watched_Value3 es el tipo
  • Watched_Value4 es Online
\"}], \"function\": \"WATCH\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"type\": \"text.multiselect\"}" UNFIMP_REPORT_ON=['new','watched-changed'] UNFIMP_REPORT_ON
metadata="{\"default_value\": [\"new\", \"watched-changed\"], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (una combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que las columnas Watched_ValueN seleccionadas cambiaron.\"}], \"function\": \"REPORT_ON\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"type\": \"text.multiselect\"}" UNFIMP_fullimport='disabled' UNFIMP_fullimport__metadata="{\"default_value\": \"disabled\", \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable a full import of all known devices by the controller instead of only the online ones. During the scan, all found devices appear online. If you select once the full import is only performed once and the status is set to done afterwards.\"}, {\"language_code\": \"es_es\", \"string\": \"Translation Needed - Enable a full import of all known devices by the controller instead of only the online ones. During the scan, all found devices appear online. If you select once the full import is only performed once and the status is set to done afterwards.\"}, {\"language_code\": \"de_de\", \"string\": \"F\u00fchre einen kompletten Import aller dem Controller bekannten Ger\u00e4ten durch. W\u00e4hrend des Scans werden alle gefundenen Ger\u00e4te einmalig als Online angezeigt. Bei der Auswahl von once wird der Scan einmalig durchgef\u00fchrt und der Status anschliessend auf done gesetzt\"}], \"function\": \"fullimport\", \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Perform full import\"}, {\"language_code\": \"es_es\", \"string\": \"[ES] Perform full import\"}, {\"language_code\": \"de_de\", \"string\": \"Vollst\u00e4ndigen Import durchf\u00fchren\"}], \"options\": [\"disabled\", \"once\", \"always\"], \"type\": \"text.select\"}"

VNDRPDT

---------------------------

VNDRPDT_RUN='schedule' VNDRPDT_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"schedule\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cu\u00e1ndo ejecutar\"}, {\"language_code\": \"de_de\", \"string\": \"Wann ausf\u00fchren\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"When the plugin should run. An overnight weekly SCHEDULE is recommended.\"}, {\"language_code\": \"de_de\", \"string\": \"Wann das Plugin ausgef\u00fchrt werden soll. Eine w\u00f6chentliche SCHEDULE in der Nacht wird empfohlen.\"}]}" VNDRPDT_CMD='python3 /home/pi/pialert/front/plugins/vendor_update/script.py' VNDRPDT_CMDmetadata="{\"function\": \"CMD\", \"type\": \"readonly\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/vendor_update/script.py\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run. This can not be changed\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar. Esto no se puede cambiar\"}, {\"language_code\": \"de_de\", \"string\": \"Befehl zum Ausf\u00fchren. Dies kann nicht ge\u00e4ndert werden\"}]}" VNDRPDT_RUN_SCHD='0 4 3' VNDRPDT_RUN_SCHDmetadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 4 3\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}, {\"language_code\": \"de_de\", \"string\": \"Zeitplan\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#VNDRPDT_RUN\\">VNDRPDT_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo est\u00e1 habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#VNDRPDT_RUN\\">VNDRPDT_RUN. Aseg\u00farese de ingresar la programaci\u00f3n en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingresar 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 a.m. en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE</ c\u00f3digo> que configur\u00f3 arriba. Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}, {\"language_code\": \"de_de\", \"string\": \"Nur aktiv, wenn schedule in der <a href=\\"#VNDRPDT_RUN\\">VNDRPDT_RUN Einstellung ausgew\u00e4hlt wurde. Sichergehen, dass das Intervall in einem korrekten cron-\u00e4hnlichen Format angegeben wurde (z.B. auf <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru testen). 0 4 * w\u00fcrde den Scan t\u00e4glich um 4 Uhr in der <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">oben ausgew\u00e4hlten TIMEZONE starten. Wird erst beim N\u00c4CHSTEN Intervall ausgef\u00fchrt.
Es wird empfohlen, das Intervall aller Plugins, welche nach neuen Ger\u00e4ten suchen, auf den gleichen Wert zu setzen.\"}]}" VNDRPDT_RUN_TIMEOUT=600 VNDRPDT_RUN_TIMEOUT__metadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 600, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo l\u00edmite de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Zeit\u00fcberschreitung\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}, {\"language_code\": \"de_de\", \"string\": \"Maximale Zeit in Sekunden, die auf den Abschluss des Skripts gewartet werden soll. Bei \u00dcberschreitung dieser Zeit wird das Skript abgebrochen.\"}]}" VNDRPDT_WATCH=['Watched_Value1'] VNDRPDT_WATCH
metadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}, {\"language_code\": \"de_de\", \"string\": \"\u00dcberwacht\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is vendor name
  • Watched_Value2 is device name
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"de_de\", \"string\": \"Sende eine Benachrichtigung, wenn ein ausgw\u00e4hlter Wert sich \u00e4ndert. STRG + klicken zum aus-/abw\u00e4hlen.
  • Watched_Value1 ist der Herstellername
  • Watched_Value2 ist der Ger\u00e4tename
  • Watched_Value3 ist nicht in Verwendung
  • Watched_Value4 ist nicht in Verwendung
\"}]}" VNDRPDT_REPORT_ON=['new','watched-changed'] VNDRPDT_REPORT_ON__metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige wenn\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que seleccion\u00f3 Watched_ValueN Las columnas cambiaron.\"}, {\"language_code\": \"de_de\", \"string\": \"Benachrichtige nur bei diesen Status. new bedeutet ein neues eindeutiges (einzigartige Kombination aus PrimaryId und SecondaryId) Objekt wurde erkennt. watched-changed bedeutet eine ausgew\u00e4hlte Watched_ValueN-Spalte hat sich ge\u00e4ndert.\"}]}"

WEBMON

---------------------------

WEBMON_RUN='disabled' WEBMON_RUNmetadata="{\"function\": \"RUN\", \"events\": [\"run\"], \"type\": \"text.select\", \"default_value\": \"disabled\", \"options\": [\"disabled\", \"once\", \"schedule\", \"always_after_scan\", \"on_new_device\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"When to run\"}, {\"language_code\": \"es_es\", \"string\": \"Cuando ejecuta\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Enable a regular scan of your services. If you select schedule the scheduling settings from below are applied. If you select once the scan is run only once on start of the application (container) for the time specified in <a href=\\"#WEBMON_RUN_TIMEOUT\\">WEBMON_RUN_TIMEOUT setting.\"}, {\"language_code\": \"es_es\", \"string\": \"Habilite un escaneo regular de sus servicios. Si selecciona schedule, se aplican las configuraciones de programaci\u00f3n de abajo. Si selecciona once, el escaneo se ejecuta solo una vez al iniciar la aplicaci\u00f3n (contenedor) durante el tiempo especificado en <a href=\\"#WEBMON_RUN_TIMEOUT\\">WEBMON_RUN_TIMEOUT configuraci\u00f3n.\"}]}" WEBMON_CMD='python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}' WEBMON_CMDmetadata="{\"function\": \"CMD\", \"type\": \"text\", \"default_value\": \"python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Command\"}, {\"language_code\": \"es_es\", \"string\": \"Comando\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Command to run\"}, {\"language_code\": \"es_es\", \"string\": \"Comando a ejecutar\"}]}" WEBMON_RUN_SCHD='0 2 ' WEBMON_RUN_SCHD__metadata="{\"function\": \"RUN_SCHD\", \"type\": \"text\", \"default_value\": \"0 2 \", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Schedule\"}, {\"language_code\": \"es_es\", \"string\": \"Schedule\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Only enabled if you select schedule in the <a href=\\"#WEBMON_RUN\\">WEBMON_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). For example entering 0 4 will run the scan after 4 am in the <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE you set above. Will be run NEXT time the time passes.\"}, {\"language_code\": \"es_es\", \"string\": \"Solo habilitado si selecciona schedule en la configuraci\u00f3n <a href=\\"#WEBMON_RUN\\">WEBMON_RUN. Aseg\u00farese de ingresar el schedule en el formato similar a cron correcto (por ejemplo, valide en <a href=\\"https://crontab.guru/\\" target=\\"_blank\\">crontab.guru). Por ejemplo, ingrese 0 4 ejecutar\u00e1 el escaneo despu\u00e9s de las 4 am en el <a onclick=\\"toggleAllSettings()\\" href=\\"#TIMEZONE\\">TIMEZONE que configur\u00f3 arriba . Se ejecutar\u00e1 la PR\u00d3XIMA vez que pase el tiempo.\"}]}" WEBMON_API_SQL='SELECT FROM plugin_website_monitor' WEBMON_API_SQL__metadata="{\"function\": \"API_SQL\", \"type\": \"text\", \"default_value\": \"SELECT FROM plugin_website_monitor\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"API endpoint (not implemented)\"}, {\"language_code\": \"es_es\", \"string\": \"Punto de conexi\u00f3n de la API (no implementado)\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"You can specify a custom SQL query which will generate a JSON file and then expose it via the <a href=\\"/api/plugin_website_monitor.json\\" target=\\"_blank\\">plugin_website_monitor.json file endpoint.\"}, {\"language_code\": \"es_es\", \"string\": \"Puede especificar una consulta SQL personalizada que generar\u00e1 un archivo JSON y luego lo expondr\u00e1 a trav\u00e9s de <a href=\\"/api/plugin_website_monitor.json\\" target=\\"_blank\\">plugin_website_monitor.json punto final del archivo.\"}]}" WEBMON_RUN_TIMEOUT=5 WEBMON_RUN_TIMEOUTmetadata="{\"function\": \"RUN_TIMEOUT\", \"type\": \"integer\", \"default_value\": 5, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Run timeout\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo de espera de ejecuci\u00f3n\"}, {\"language_code\": \"de_de\", \"string\": \"Wartezeit\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Maximum time in seconds to wait for the script to finish. If this time is exceeded the script is aborted.\"}, {\"language_code\": \"es_es\", \"string\": \"Tiempo m\u00e1ximo en segundos para esperar a que finalice el script. Si se supera este tiempo, el script se cancela.\"}]}" WEBMON_WATCH=['Watched_Value1'] WEBMON_WATCHmetadata="{\"function\": \"WATCH\", \"type\": \"text.multiselect\", \"default_value\": [\"Watched_Value1\"], \"options\": [\"Watched_Value1\", \"Watched_Value2\", \"Watched_Value3\", \"Watched_Value4\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Watched\"}, {\"language_code\": \"es_es\", \"string\": \"Visto\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification if selected values change. Use CTRL + Click to select/deselect.

  • Watched_Value1 is response status code (e.g.: 200, 404)
  • Watched_Value2 is Latency (not recommended)
  • Watched_Value3 unused
  • Watched_Value4 unused
\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n si los valores seleccionados cambian. Use CTRL + Click para seleccionar/deseleccionar.
  • Watched_Value1 es un c\u00f3digo de estado de respuesta (por ejemplo: 200, 404)
  • Valor_observado2 es Latencia (no recomendado)
  • Valor_observado3 no utilizado
  • Valor_observado4 </ code> sin usar
\"}]}" WEBMON_REPORT_ON=['new','watched-changed'] WEBMON_REPORT_ON
metadata="{\"function\": \"REPORT_ON\", \"type\": \"text.multiselect\", \"default_value\": [\"new\", \"watched-changed\"], \"options\": [\"new\", \"watched-changed\", \"watched-not-changed\", \"missing-in-last-scan\"], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Report on\"}, {\"language_code\": \"es_es\", \"string\": \"Informar sobre\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Send a notification only on these statuses. new means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. watched-changed means that selected Watched_ValueN columns changed.\"}, {\"language_code\": \"es_es\", \"string\": \"Env\u00ede una notificaci\u00f3n solo en estos estados. new significa que se descubri\u00f3 un nuevo objeto \u00fanico (combinaci\u00f3n \u00fanica de PrimaryId y SecondaryId). watched-changed significa que seleccion\u00f3 Watched_ValueN Las columnas cambiaron.\"}]}" WEBMON_urls_to_check=['https://google.com','https://duck.com'] WEBMON_urls_to_check__metadata="{\"function\": \"urls_to_check\", \"type\": \"list\", \"default_value\": [\"https://google.com\", \"https://duck.com\"], \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Arguments\"}, {\"language_code\": \"es_es\", \"string\": \"Argumentos\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Services to watch. Enter full URL, e.g. https://google.com. The values from this setting will be used to replace the {urls} wildcard in the WEBMON_CMD setting.\"}, {\"language_code\": \"es_es\", \"string\": \"Servicios para ver. Ingrese la URL completa, por ejemplo, https://google.com. Los valores de esta configuraci\u00f3n se usar\u00e1n para reemplazar el comod\u00edn {urls} en la configuraci\u00f3n < code>WEBMON_CMD.\"}]}" WEBMON_SQL_internet_ip='SELECT dev_LastIP FROM Devices WHERE dev_MAC = {s-quote}Internet{s-quote}' WEBMON_SQL_internet_ip
metadata="{\"function\": \"SQL_internet_ip\", \"type\": \"readonly\", \"default_value\": \"SELECT dev_LastIP FROM Devices WHERE dev_MAC = 'Internet'\", \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"Helper variable\"}, {\"language_code\": \"es_es\", \"string\": \"Variable de ayuda\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"Unused setting - for demonstration only. Getting the IP address of the Router / Internet.\"}, {\"language_code\": \"es_es\", \"string\": \"Configuraci\u00f3n no utilizada: solo para demostraci\u00f3n. Obtener la direcci\u00f3n IP del enrutador / Internet.\"}]}"

WORKFLOWS

---------------------------

WORKFLOWS_AppEvents_hist=5000 WORKFLOWS_AppEvents_hist__metadata="{\"function\": \"AppEvents_hist\", \"type\": \"integer\", \"default_value\": 5000, \"options\": [], \"localized\": [\"name\", \"description\"], \"name\": [{\"language_code\": \"en_us\", \"string\": \"App Events History\"}], \"description\": [{\"language_code\": \"en_us\", \"string\": \"How many historical entries of Application Events should be kept. This influences how many entries are also available in the Workflows section in the UI.\"}]}"

-------------------IMPORTANT INFO-------------------

This file is ingested by a python script, so if

modified it needs to use python syntax

-------------------IMPORTANT INFO-------------------

quinb96 commented 5 months ago

After troubleshooting more I figured out this has to do with how I have my router setup. Pi.Alert isn't the issue.

jokob-sk commented 5 months ago

Hey @quinb96 ,

Glad to hear this is resolved!

can you please describe how you solved the issue so others can troubleshoot those themselves if facing a similar problem?

Thanks in advance! j