{
"code_name": "pihole_scan",
"unique_prefix": "PIHOLE",
"plugin_type": "device_scanner",
"enabled": true,
"data_source": "sqlite-db-query",
"mapped_to_table": "CurrentScan",
"data_filters": [
{
"compare_column": "Object_PrimaryID",
"compare_operator": "==",
"compare_field_id": "txtMacFilter",
"compare_js_template": "'{value}'.toString()",
"compare_use_quotes": true
}
],
"show_ui": true,
"localized": ["display_name", "description", "icon"],
"display_name": [
{
"language_code": "en_us",
"string": "PiHole (Device sync)"
},
{
"language_code": "es_es",
"string": "PiHole (Sincronización de dispositivos)"
}
],
"icon": [
{
"language_code": "en_us",
"string": ""
},
{
"language_code": "es_es",
"string": ""
}
],
"description": [
{
"language_code": "en_us",
"string": "This plugin syncs devices from the PiHole database"
},
{
"language_code": "es_es",
"string": "Este complemento sincroniza dispositivos desde la base de datos de PiHole"
}
],
"params": [
{
"name": "subnets",
"type": "setting",
"value": "SCAN_SUBNETS",
"base64": true
}
],
"settings": [
{
"function": "RUN",
"events": ["run"],
"type": {
"dataType": "string",
"elements": [
{ "elementType": "select", "elementOptions": [], "transformers": [] }
]
},
"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 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. ⚠ Use the same schedule if you have multiple Device scanners enabled."
},
{
"language_code": "es_es",
"string": "Especifique cuándo se ejecutará la importación de su dispositivo PiHole desde la base de datos de PiHole. La configuración típica sería schedule y luego especifica una programación similar a cron en la configuración PIHOLE_RUN_SCHD. Si está 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ón DB_PATH."
}
]
},
{
"function": "CMD",
"type": {
"dataType": "string",
"elements": [
{ "elementType": "input", "elementOptions": [], "transformers": [] }
]
},
"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ón Complementos. Este en particular selecciona datos de una base de datos PiHole SQLite asignada y los asigna a las columnas correspondientes del complemento."
}
]
},
{
"function": "DB_PATH",
"type": {
"dataType": "string",
"elements": [
{ "elementType": "input", "elementOptions": [], "transformers": [] }
]
},
"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ón 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ón CMD."
}
]
},
{
"function": "RUN_SCHD",
"type": {
"dataType": "string",
"elements": [
{ "elementType": "input", "elementOptions": [], "transformers": [] }
]
},
"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 PIHOLE_RUN setting. Make sure you enter the schedule in the correct cron-like format (e.g. validate at 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á habilitado si selecciona schedule en la configuración PIHOLE_RUN. Asegúrese de ingresar la programación en el formato similar a cron correcto (por ejemplo, valide en crontab.guru). Por ejemplo, ingresar */30 * * * * ejecutará el escaneo cada 30 minutos. Se ejecutará la PRÓXIMA vez que pase el tiempo.
Se recomienda utilizar el mismo intervalo de programación para todos los complementos que analizan su red."
}
]
},
{
"function": "WATCH",
"type": {
"dataType": "array",
"elements": [
{
"elementType": "select",
"elementOptions": [{ "multiple": "true" }],
"transformers": []
}
]
},
"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 IPWatched_Value2 is Last QueryWatched_Value3 is Name Watched_Value4 is N/A CTRL + clic para seleccionar/deseleccionar. Watched_Value1 es IPWatched_Value2 es ProveedorWatched_Value3 is es InterfazWatched_Value4 es N/A