mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f029fa1cc8 | ||
|
|
7084c69171 | ||
|
|
3ada622bd0 | ||
|
|
93d08de2ab | ||
|
|
64da64105e | ||
|
|
3e448b123b | ||
|
|
bedbebbe04 | ||
|
|
4b3d876fbd | ||
|
|
d52709cb72 | ||
|
|
ed53e59a00 | ||
|
|
0fcf089d39 | ||
|
|
25abc1b59b | ||
|
|
516eef0431 | ||
|
|
5df5bdef59 | ||
|
|
4eddad5bf4 | ||
|
|
794bfcc25c | ||
|
|
0f56f06937 | ||
|
|
78a87c4ed0 | ||
|
|
af41eed26c | ||
|
|
5169ac32a1 | ||
|
|
1e7c50b0fe | ||
|
|
31f7521501 | ||
|
|
a29e700b83 | ||
|
|
04c45bd39f | ||
|
|
524bf1f676 | ||
|
|
ee63f3fe0d | ||
|
|
295db87113 | ||
|
|
1f54292fbc |
@@ -29,7 +29,7 @@
|
||||
<tr>
|
||||
<td>
|
||||
<table width=100% border=0 bgcolor=#4b99d3 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#ffffff"> <tr>
|
||||
<td width=100%> Report Date: <b><REPORT_DATE></b> </td>
|
||||
<td width=100% bgcolor="#3c8dbc"> Report Date: <b><REPORT_DATE></b> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@@ -51,7 +51,7 @@
|
||||
<td>
|
||||
<table width=100% bgcolor=#3c8dbc cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
|
||||
<tr>
|
||||
<td width=50% style="text-align:center;color: white;">
|
||||
<td width=50% style="text-align:center;color: white;" bgcolor="#3c8dbc">
|
||||
<a href="https://github.com/jokob-sk/Pi.Alert" target="_blank" style="color: white">Pi.Alert</a>
|
||||
<a href=".." target="_blank" style="color: white"> (<SERVER_NAME>)</a>
|
||||
<br><span style="display:inline-block;color: white; transform: rotate(180deg)">©</span>2020 Puche (2022+
|
||||
|
||||
@@ -25,11 +25,16 @@
|
||||
Pi.Alert Report
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor=#2656f1 width=100% align=center style="padding: 20px 10px 10px 10px; font-size: 20px; font-weight: bold; color:#ffffff; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
|
||||
<a style="color:#ffffff;cursor:pointer;" href="https://github.com/jokob-sk/Pi.Alert/releases">🆕 New version available 🆕</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<table width=100% border=0 bgcolor=#4b99d3 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#ffffff"> <tr>
|
||||
<td width=100%> Report Date: <b><REPORT_DATE></b> </td>
|
||||
<td width=100% bgcolor="#3c8dbc"> Report Date: <b><REPORT_DATE></b> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@@ -51,7 +56,7 @@
|
||||
<td>
|
||||
<table width=100% bgcolor=#3c8dbc cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
|
||||
<tr>
|
||||
<td width=50% style="text-align:center;color: white;">
|
||||
<td width=50% style="text-align:center;color: white;" bgcolor="#3c8dbc">
|
||||
<a href="https://github.com/jokob-sk/Pi.Alert" target="_blank" style="color: white">Pi.Alert</a>
|
||||
<a href=".." target="_blank" style="color: white"> (<SERVER_NAME>)</a>
|
||||
<br><span style="display:inline-block;color: white; transform: rotate(180deg)">©</span>2020 Puche (2022+
|
||||
|
||||
@@ -21,6 +21,7 @@ services:
|
||||
# DELETE START anyone trying to use this file: comment out / delete BELOW lines, they are only for development purposes
|
||||
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/dhcp1.leases:/mnt/dhcp1.leases
|
||||
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/dhcp2.leases:/mnt/dhcp2.leases
|
||||
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/pihole_dhcp_full.leases:/etc/pihole/dhcp.leases
|
||||
- ${APP_DATA_LOCATION}/pihole/etc-pihole/pihole-FTL.db:/etc/pihole/pihole-FTL.db
|
||||
- ${DEV_LOCATION}/pialert:/home/pi/pialert/pialert
|
||||
- ${DEV_LOCATION}/back/report_template.html:/home/pi/pialert/back/report_template.html
|
||||
@@ -49,6 +50,7 @@ services:
|
||||
- ${DEV_LOCATION}/front/systeminfo.php:/home/pi/pialert/front/systeminfo.php
|
||||
- ${DEV_LOCATION}/front/report.php:/home/pi/pialert/front/report.php
|
||||
- ${DEV_LOCATION}/front/flows.php:/home/pi/pialert/front/flows.php
|
||||
- ${DEV_LOCATION}/front/donations.php:/home/pi/pialert/front/donations.php
|
||||
- ${DEV_LOCATION}/front/plugins:/home/pi/pialert/front/plugins
|
||||
# DELETE END anyone trying to use this file: comment out / delete ABOVE lines, they are only for development purposes
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
2
docs/FRONTEND_DEVELOPMENT.md
Normal file → Executable file
2
docs/FRONTEND_DEVELOPMENT.md
Normal file → Executable file
@@ -43,4 +43,4 @@ Some useful frontend JavaScript functions:
|
||||
- `getSetting(string stringKey)` - method to retrieve settings in the frontend
|
||||
|
||||
|
||||
Check the [pialert_common.js](https://github.com/jokob-sk/Pi.Alert/blob/main-2023-06-10/front/js/pialert_common.js) file for more frontend function.
|
||||
Check the [pialert_common.js](https://github.com/jokob-sk/Pi.Alert/blob/main-2023-06-10/front/js/pialert_common.js) file for more frontend functions.
|
||||
@@ -426,7 +426,7 @@ function initializeDatatable () {
|
||||
default: color='aqua'; break;
|
||||
};
|
||||
|
||||
$(td).html ('<a href="deviceDetails.php?mac='+ rowData[10] +'" class="badge bg-'+ color +'">'+ cellData.replace('-', '') +'</a>');
|
||||
$(td).html ('<a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="badge bg-'+ color +'">'+ cellData.replace('-', '') +'</a>');
|
||||
} },
|
||||
],
|
||||
|
||||
|
||||
22
front/donations.php
Executable file
22
front/donations.php
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
require 'php/templates/header.php';
|
||||
?>
|
||||
<script src="js/pialert_common.js"></script>
|
||||
|
||||
|
||||
<div id="settingsPage" class="content-wrapper">
|
||||
<p>
|
||||
<a target="_blank" href="https://github.com/sponsors/jokob-sk">
|
||||
<img alt="Sponsor Me on GitHub" src="https://i.imgur.com/X6p5ACK.png" width="150px">
|
||||
</a>
|
||||
<a target="_blank" href="https://www.buymeacoffee.com/jokobsk">
|
||||
<img alt="Buy Me A Coffee" src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" width="117px" height="30px">
|
||||
</a>
|
||||
<a target="_blank" href="https://www.patreon.com/user?u=84385063">
|
||||
<img alt="Support me on patreon" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Patreon_logo_with_wordmark.svg/512px-Patreon_logo_with_wordmark.svg.png" width="117px">
|
||||
</a>
|
||||
</p>
|
||||
<p>
|
||||
BTC: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM
|
||||
</p>
|
||||
</div>
|
||||
@@ -518,7 +518,7 @@ function getDeviceDataByMacAddress(macAddress, dbColumn) {
|
||||
function initDeviceListAll_JSON()
|
||||
{
|
||||
|
||||
$.get('/api/table_devices.json', function(data) {
|
||||
$.get('api/table_devices.json', function(data) {
|
||||
|
||||
console.log(data)
|
||||
|
||||
|
||||
@@ -471,6 +471,10 @@
|
||||
|
||||
setCache('devicesListNew', JSON.stringify(devicesListnew))
|
||||
|
||||
// init global variable
|
||||
deviceListGlobal = devicesListnew;
|
||||
|
||||
|
||||
// create tree
|
||||
initTree(getHierarchy());
|
||||
|
||||
@@ -484,20 +488,6 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
// Tree functionality
|
||||
// ---------------------------------------------------------------------------
|
||||
// ---------------------------------------------------------------------------
|
||||
function getDevicesList()
|
||||
{
|
||||
// Read cache
|
||||
devicesList = getCache('devicesListNew');
|
||||
|
||||
if (devicesList != '') {
|
||||
devicesList = JSON.parse (devicesList);
|
||||
} else {
|
||||
devicesList = [];
|
||||
}
|
||||
return devicesList;
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
var leafNodesCount = 0;
|
||||
@@ -505,6 +495,7 @@
|
||||
var parentNodesCount = 0;
|
||||
var hiddenMacs = []; // hidden children
|
||||
var hiddenChildren = [];
|
||||
var deviceListGlobal = null;
|
||||
|
||||
|
||||
|
||||
@@ -559,14 +550,12 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
function getHierarchy()
|
||||
{
|
||||
list = getDevicesList();
|
||||
|
||||
for(i in list)
|
||||
{
|
||||
for(i in deviceListGlobal)
|
||||
{
|
||||
if(list[i].mac == 'Internet')
|
||||
if(deviceListGlobal[i].mac == 'Internet')
|
||||
{
|
||||
return (getChildren(list[i], list, ''))
|
||||
return (getChildren(deviceListGlobal[i], deviceListGlobal, ''))
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -587,8 +576,6 @@
|
||||
removeItemFromArray(hiddenMacs, parentMac)
|
||||
}
|
||||
|
||||
list = getDevicesList();
|
||||
|
||||
// updatedTree = myHierarchy;
|
||||
updatedTree = getHierarchy()
|
||||
|
||||
@@ -638,6 +625,8 @@
|
||||
|
||||
$("#networkTree").attr('style', `height:${treeAreaHeight}px; width:${$('.content-header').width()}px`)
|
||||
|
||||
console.log('here')
|
||||
|
||||
myTree = Treeviz.create({
|
||||
htmlId: "networkTree",
|
||||
|
||||
@@ -689,6 +678,10 @@
|
||||
onNodeClick: (nodeData) => handleNodeClick(nodeData),
|
||||
relationnalField: "children",
|
||||
});
|
||||
|
||||
console.log('vvvv')
|
||||
console.log(myHierarchy)
|
||||
console.log('^^^^^^^')
|
||||
|
||||
myTree.refresh(myHierarchy);
|
||||
}
|
||||
|
||||
@@ -259,9 +259,12 @@ if ($ENABLED_DARKMODE === True) {
|
||||
<li class=" <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('systeminfo.php') ) ){ echo 'active'; } ?>">
|
||||
<a href="systeminfo.php"><i class="fa fa-microchip"></i> <span><?= lang('Navigation_SystemInfo');?></span></a>
|
||||
</li>
|
||||
<li class=" <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('help_faq.php') ) ){ echo 'active'; } ?>">
|
||||
<li class=" <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('help_faq.php') ) ){ echo 'active'; } ?>">
|
||||
<a href="help_faq.php"><i class="fa fa-question"></i> <span><?= lang('Navigation_HelpFAQ');?></span></a>
|
||||
</li>
|
||||
<!-- <li class=" <?php if (in_array (basename($_SERVER['SCRIPT_NAME']), array('donations.php') ) ){ echo 'active'; } ?>">
|
||||
<a href="donations.php"><i class="fa fa-heart"></i> <span><?= lang('Navigation_Donations');?></span></a>
|
||||
</li> -->
|
||||
</ul>
|
||||
|
||||
<!-- /.sidebar-menu -->
|
||||
|
||||
@@ -1,427 +1,427 @@
|
||||
{
|
||||
"de_de": {
|
||||
"About_Title": "Open Source Network Guard",
|
||||
"About_Design": "Designed for:",
|
||||
"About_Exit": "Sign out",
|
||||
"Gen_Delete" : "Löschen",
|
||||
"Gen_Cancel" : "Abbrechen",
|
||||
"Gen_Okay" : "Ok",
|
||||
"Gen_Purge" : "Aufräumen",
|
||||
"Gen_Backup" : "Sichern",
|
||||
"Gen_Restore" : "Wiederherstellen",
|
||||
"Gen_Switch" : "Umschalten",
|
||||
"Gen_AreYouSure" : "Sind Sie sich sicher?",
|
||||
"Login_Box" : "Passwort eingeben",
|
||||
"Login_Remember" : "Passwort speichern",
|
||||
"Login_Remember_small" : "(für 7 Tage gültig)",
|
||||
"Login_Submit" : "Anmelden",
|
||||
"Login_Psw_run" : "Um das Passwort zu ändern nutze:",
|
||||
"Login_Psw_new" : "neues_passwort",
|
||||
"Login_Psw_folder" : "im Ordner ~/pialert/config",
|
||||
"Login_Psw_alert" : "Sicherheitshinweis!",
|
||||
"Login_Psw-box" : "Passwort",
|
||||
"Login_Toggle_Info" : "Passwort Informationen",
|
||||
"Login_Toggle_Info_headline" : "Passwort Information",
|
||||
"Login_Toggle_Alert_headline" : "Passwort Warnung!",
|
||||
"Navigation_Devices" : "Geräte",
|
||||
"Navigation_Presence" : "Anwesenheit",
|
||||
"Navigation_Events" : "Ereignisse",
|
||||
"Navigation_Report" : "Bericht",
|
||||
"Navigation_Maintenance" : "Wartung",
|
||||
"Navigation_Settings" : "Einstellung",
|
||||
"Navigation_SystemInfo" : "System info",
|
||||
"Navigation_Network" : "Netzwerk",
|
||||
"Navigation_HelpFAQ" : "Hilfe / FAQ",
|
||||
"Device_Title" : "Geräte",
|
||||
"Device_Shortcut_AllDevices" : "Alle Geräte",
|
||||
"Device_Shortcut_Connected" : "Verbunden",
|
||||
"Device_Shortcut_Favorites" : "Favoriten",
|
||||
"Device_Shortcut_NewDevices" : "Neue Geräte",
|
||||
"Device_Shortcut_DownAlerts" : "Down Meldungen",
|
||||
"Device_Shortcut_Archived" : "Archiviert",
|
||||
"Device_Shortcut_Devices" : "Geräte",
|
||||
"Device_Shortcut_OnlineChart" : "Gerätepräsenz im Laufe der Zeit",
|
||||
"Device_TableHead_Name" : "Name",
|
||||
"Device_TableHead_Owner" : "Eigentümer",
|
||||
"Device_TableHead_Type" : "Typ",
|
||||
"Device_TableHead_Favorite" : "Favorit",
|
||||
"Device_TableHead_Group" : "Gruppe",
|
||||
"Device_TableHead_FirstSession" : "Erste Sitzg.",
|
||||
"Device_TableHead_LastSession" : "Letzte Sitzg.",
|
||||
"Device_TableHead_LastIP" : "Letzte IP",
|
||||
"Device_TableHead_MAC" : "MAC",
|
||||
"Device_TableHead_LastIPOrder" : "Last IP Order",
|
||||
"Device_TableHead_Rowid" : "Zeilennummer",
|
||||
"Device_TableHead_Status" : "Status",
|
||||
"Device_Searchbox" : "Suche",
|
||||
"Device_Tablelenght" : "Zeige _MENU_ Einträge",
|
||||
"Device_Tablelenght_all" : "Alle",
|
||||
"Device_Table_info" : "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"Device_Table_nav_next" : "Nächste",
|
||||
"Device_Table_nav_prev" : "Zurück",
|
||||
"Presence_Title" : "Anwesenheit pro Gerät",
|
||||
"Presence_Loading" : "Laden...",
|
||||
"Presence_Shortcut_AllDevices" : "Alle Geräte",
|
||||
"Presence_Shortcut_Connected" : "Verbunden",
|
||||
"Presence_Shortcut_Favorites" : "Favoriten",
|
||||
"Presence_Shortcut_NewDevices" : "Neue Geräte",
|
||||
"Presence_Shortcut_DownAlerts" : "Down Meldungen",
|
||||
"Presence_Shortcut_Archived" : "Archiviert",
|
||||
"Presence_Shortcut_Devices" : "Geräte",
|
||||
"Presence_CallHead_Devices" : "Geräte",
|
||||
"Presence_CalHead_lang" : "de",
|
||||
"Presence_CalHead_year" : "Jahr",
|
||||
"Presence_CalHead_quarter" : "Quartal",
|
||||
"Presence_CalHead_month" : "Monat",
|
||||
"Presence_CalHead_week" : "Woche",
|
||||
"Events_Title" : "Ereignisse",
|
||||
"Events_Loading": "Laden...",
|
||||
"Events_Periodselect_today" : "Heute",
|
||||
"Events_Periodselect_LastWeek" : "Letzte Woche",
|
||||
"Events_Periodselect_LastMonth" : "Letzter Monat",
|
||||
"Events_Periodselect_LastYear" : "Letztes Jahr",
|
||||
"Events_Periodselect_All" : "Alle Ereignisse",
|
||||
"Events_Shortcut_AllEvents" : "Alle Ereignisse",
|
||||
"Events_Shortcut_Sessions" : "Sitzungen",
|
||||
"Events_Shortcut_MissSessions" : "fehlende Sitzungen",
|
||||
"Events_Shortcut_VoidSessions" : "beendete Sitzungen",
|
||||
"Events_Shortcut_NewDevices" : "Neue Geräte",
|
||||
"Events_Shortcut_DownAlerts" : "Down Meldungen",
|
||||
"Events_Shortcut_Events" : "Ereignisse",
|
||||
"Events_TableHead_Order" : "Order",
|
||||
"Events_TableHead_Device" : "Gerät",
|
||||
"Events_TableHead_Owner" : "Eigentümer",
|
||||
"Events_TableHead_Date" : "Datum",
|
||||
"Events_TableHead_EventType" : "Ereignis Typ",
|
||||
"Events_TableHead_Connection" : "Verbindung",
|
||||
"Events_TableHead_Disconnection" : "Trennung",
|
||||
"Events_TableHead_Duration" : "Dauer",
|
||||
"Events_TableHead_DurationOrder" : "Duration Order",
|
||||
"Events_TableHead_IP" : "IP",
|
||||
"Events_TableHead_IPOrder" : "IP Order",
|
||||
"Events_TableHead_AdditionalInfo" : "Zusätzliche Info",
|
||||
"Events_Searchbox" : "Suche",
|
||||
"Events_Tablelenght" : "Zeige _MENU_ Einträge",
|
||||
"Events_Tablelenght_all" : "Alle",
|
||||
"Events_Table_info" : "Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"Events_Table_nav_next" : "Nächste",
|
||||
"Events_Table_nav_prev" : "Zurück",
|
||||
"DevDetail_Loading" : "Laden ...",
|
||||
"DevDetail_Periodselect_today" : "Heute",
|
||||
"DevDetail_Periodselect_LastWeek" : "Letzte Woche",
|
||||
"DevDetail_Periodselect_LastMonth" : "Letzter Monat",
|
||||
"DevDetail_Periodselect_LastYear" : "Letztes Jahr",
|
||||
"DevDetail_Periodselect_All" : "Alle Infos",
|
||||
"DevDetail_Shortcut_CurrentStatus" : "aktueller Status",
|
||||
"DevDetail_Shortcut_Sessions" : "Sitzungen",
|
||||
"DevDetail_Shortcut_Presence" : "Anwesenheit",
|
||||
"DevDetail_Shortcut_DownAlerts" : "Down Meldungen",
|
||||
"DevDetail_Tab_Details" : "Details",
|
||||
"DevDetail_Tab_Tools": "<i class=\"fa fa-screwdriver-wrench\"></i> Tools",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Title": "Internetinformationen",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Description": "Das Internet-Info-Tool zeigt Informationen über die Internetverbindung an, wie z. B. IP-Adresse, Stadt, Land, Ortsvorwahl und Zeitzone.",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Start": "Internet-Info starten",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Error": "Es ist ein Fehler aufgetreten",
|
||||
"DevDetail_Tab_Tools_Nslookup_Title": "Nslookup",
|
||||
"DevDetail_Tab_Tools_Nslookup_Description": "Nslookup ist ein Befehlszeilentool zur Abfrage des Domain Name System (DNS). DNS ist ein System, das Domainnamen wie www.google.com in IP-Adressen wie 172.217.0.142 übersetzt. ",
|
||||
"DevDetail_Tab_Tools_Nslookup_Start": "Nslookup starten",
|
||||
"DevDetail_Tab_Tools_Nslookup_Error": "Fehler: IP-Adresse ist ungültig",
|
||||
"DevDetail_Tab_Tools_Speedtest_Title": "Speedtest test",
|
||||
"DevDetail_Tab_Tools_Speedtest_Description": "Das Speedtest-Tool misst die Download-Geschwindigkeit, Upload-Geschwindigkeit und Latenz der Internetverbindung.",
|
||||
"DevDetail_Tab_Tools_Speedtest_Start": "Speedtest starten",
|
||||
"DevDetail_Tab_Tools_Traceroute_Title": "Traceroute",
|
||||
"DevDetail_Tab_Tools_Traceroute_Description": "Traceroute ist ein Netzwerkdiagnosebefehl, mit dem der Pfad verfolgt wird, den Datenpakete von einem Host zu einem anderen nehmen.<br><br>Der Befehl verwendet das Internet Control Message Protocol (ICMP), um Pakete an Zwischenknoten auf der Route zu senden, jeden Zwischenknoten Der Knoten antwortet mit einem ICMP-Timeout-Paket (TTL-Zeitüberschreitung).<br><br>Die Ausgabe des Traceroute-Befehls zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Die Ausgabe der Traceroute Der Befehl zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Der Befehl „traceroute“ kann zur Diagnose von Netzwerkproblemen wie Verzögerungen, Paketverlust und blockierten Routen verwendet werden.<br><br>Das ist auch möglich kann verwendet werden, um den Standort eines Zwischenknotens in einem Netzwerk zu identifizieren.",
|
||||
"DevDetail_Tab_Tools_Traceroute_Start": "Traceroute starten",
|
||||
"DevDetail_Tab_Tools_Traceroute_Error": "Fehler: IP-Adresse ist ungültig",
|
||||
"DevDetail_Tab_Nmap" : "Nmap",
|
||||
"DevDetail_Tab_NmapTableIndex": "Index",
|
||||
"DevDetail_Tab_NmapTableTime": "Zeit",
|
||||
"DevDetail_Tab_NmapTablePort": "Port",
|
||||
"DevDetail_Tab_NmapTableState": "Status",
|
||||
"DevDetail_Tab_NmapTableService": "Dienst",
|
||||
"DevDetail_Tab_NmapTableExtra": "Extra",
|
||||
"DevDetail_Tab_Sessions" : "Sitzungen",
|
||||
"DevDetail_Tab_Presence" : "Anwesenheit",
|
||||
"DevDetail_Tab_Events" : "Ereignisse",
|
||||
"DevDetail_Tab_EventsTableDate" : "Datum",
|
||||
"DevDetail_Tab_EventsTableEvent" : "Ereignistype",
|
||||
"DevDetail_Tab_EventsTableIP" : "IP",
|
||||
"DevDetail_Tab_EventsTableInfo" : "Zusätzliche Informationen",
|
||||
"DevDetail_MainInfo_Title" : "Haupt Infos",
|
||||
"DevDetail_MainInfo_mac" : "MAC",
|
||||
"DevDetail_MainInfo_Name" : "Name",
|
||||
"DevDetail_MainInfo_Owner" : "Eigen-­tümer",
|
||||
"DevDetail_MainInfo_Type" : "Typ",
|
||||
"DevDetail_MainInfo_Vendor" : "Hersteller",
|
||||
"DevDetail_MainInfo_Favorite" : "Favorit",
|
||||
"DevDetail_MainInfo_Group" : "Gruppe",
|
||||
"DevDetail_MainInfo_Location" : "Standort",
|
||||
"DevDetail_MainInfo_Comments" : "Notiz",
|
||||
"DevDetail_MainInfo_Network" : "Netzwerk Knoten",
|
||||
"DevDetail_MainInfo_Network_Port" : "Netzwerk Knoten Port",
|
||||
"DevDetail_SessionInfo_Title" : "Sitzungsinfos",
|
||||
"DevDetail_SessionInfo_Status" : "Status",
|
||||
"DevDetail_SessionInfo_FirstSession" : "Erste Sitzung",
|
||||
"DevDetail_SessionInfo_LastSession" : "Letzte Sitzung",
|
||||
"DevDetail_SessionInfo_LastIP" : "Letzte IP",
|
||||
"DevDetail_SessionInfo_StaticIP" : "Statische IP",
|
||||
"DevDetail_EveandAl_Title" : "Ereignisse & Alarme einstellen",
|
||||
"DevDetail_EveandAl_ScanCycle" : "Scan Abstand",
|
||||
"DevDetail_EveandAl_AlertAllEvents" : "Melde alle Ereignisse",
|
||||
"DevDetail_EveandAl_AlertDown" : "Melde Down",
|
||||
"DevDetail_EveandAl_Skip" : "pausiere wiederhol. Meldungen für",
|
||||
"DevDetail_EveandAl_NewDevice" : "Neues Gerät",
|
||||
"DevDetail_EveandAl_Archived" : "Archivierung",
|
||||
"DevDetail_EveandAl_RandomMAC" : "Zufällige MAC",
|
||||
"DevDetail_EveandAl_ScanCycle_a" : "Gerät scannen",
|
||||
"DevDetail_EveandAl_ScanCycle_z" : "Gerät nicht scannen",
|
||||
"DevDetail_button_Delete" : "Lösche Gerät",
|
||||
"DevDetail_button_Reset" : "Verwerfen",
|
||||
"DevDetail_button_Save" : "Speichern",
|
||||
"DevDetail_button_DeleteEvents" : "Lösche Events",
|
||||
"DevDetail_button_DeleteEvents_Warning" : "Sind Sie sicher, dass Sie alle Ereignisse dieses Geräts löschen möchten? (dies löscht den Ereignisverlauf und die Sitzungen und könnte bei ständigen (anhaltenden) Benachrichtigungen helfen)",
|
||||
"DevDetail_SessionTable_Order" : "Order",
|
||||
"DevDetail_SessionTable_Connection" : "Verbindung",
|
||||
"DevDetail_SessionTable_Disconnection" : "Trennung",
|
||||
"DevDetail_SessionTable_Duration" : "Dauer",
|
||||
"DevDetail_SessionTable_IP" : "IP",
|
||||
"DevDetail_SessionTable_Additionalinfo" : "Zusätzliche Info",
|
||||
"DevDetail_Events_CheckBox" : "Blende Verbindungs-Ereignisse aus",
|
||||
"DevDetail_Nmap_buttonFast" : "Schneller Scan",
|
||||
"DevDetail_Nmap_buttonDefault" : "Standard Scan",
|
||||
"DevDetail_Nmap_buttonDetail" : "Detailierter Scan",
|
||||
"DevDetail_Nmap_buttonFast_text" : "Schneller Scan: Überprüft nur die wichtigsten 100 Ports (wenige Sekunden)",
|
||||
"DevDetail_Nmap_buttonDefault_text" : "Standard Scan: Nmap scannt die ersten 1.000 Ports für jedes angeforderte Scan-Protokoll. Damit werden etwa 93 % der TCP-Ports und 49 % der UDP-Ports erfasst. (ca. 5-10 Sekunden)",
|
||||
"DevDetail_Nmap_buttonDetail_text" : "Detailierter Scan: Standardscan mit aktivierter Betriebssystemerkennung, Versionserkennung, Skript-Scan und Traceroute (bis zu 30 oder mehr Sekunden)",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery" : "Ohne Erreichbarkeitsprüfung",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text" : "Ohne Erreichbarkeitsprüfung (-Pn Parameter): Standard Scan bei dem nmap annimmt, dass der Host erreichbar ist.",
|
||||
"DevDetail_Nmap_Scans": "Nmap Scans",
|
||||
"Maintenance_Title" : "Wartungswerkzeuge",
|
||||
"Maintenance_database_path" : "Datenbank-Pfad",
|
||||
"Maintenance_database_size" : "Datenbank-Größe",
|
||||
"Maintenance_database_lastmod" : "Letzte Änderung",
|
||||
"Maintenance_database_backup" : "DB Sicherungen",
|
||||
"Maintenance_database_backup_found" : "Sicherungen verfügbar",
|
||||
"Maintenance_database_backup_total" : "Speicherplatz insgesamt",
|
||||
"Maintenance_arp_status" : "Scan Status",
|
||||
"Maintenance_arp_status_off" : "ist im Moment deaktiviert",
|
||||
"Maintenance_arp_status_on" : "Scan(s) sind gerade aktiv",
|
||||
"Maintenance_themeselector_lable" : "Skin Auswahl",
|
||||
"Maintenance_themeselector_empty" : "Skin wählen",
|
||||
"Maintenance_themeselector_text" : "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_themeselector_apply" : "Übernehmen",
|
||||
"Maintenance_lang_selector_lable" : "Sprachauswahl",
|
||||
"Maintenance_lang_selector_empty" : "Sprache wählen",
|
||||
"Maintenance_lang_en_us" : "Englisch (US)",
|
||||
"Maintenance_lang_de_de" : "Deutsch (DE)",
|
||||
"Maintenance_lang_es_es" : "Spanisch (ES)",
|
||||
"Maintenance_lang_selector_text" : "Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_lang_selector_apply" : "Übernehmen",
|
||||
"Maintenance_Tools_Tab_Settings" : "Einstellungen",
|
||||
"Maintenance_Tools_Tab_Tools" : "Werkzeuge",
|
||||
"Maintenance_Tools_Tab_BackupRestore" : "Sicherg. / Wiederherstellg.",
|
||||
"Maintenance_Tools_Tab_Logging" : "Logs",
|
||||
"Maintenance_Tool_darkmode" : "Darstellungswechsel (Dunkel/Hell)",
|
||||
"Maintenance_Tool_darkmode_text" : "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn der Wechsel nicht richtig funktionieren sollte, versuchen Sie den Browsercache zu löschen. Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_Tool_darkmode_noti" : "Darstellungswechsel",
|
||||
"Maintenance_Tool_darkmode_noti_text" : "Wechselt zwischen der hellen und der dunklen Darstellung. Wenn die Umschaltung nicht ordentlich funktionieren sollte, versuchen Sie den Browsercache zu löschen.",
|
||||
"Maintenance_Tool_arpscansw" : "arp-Scan stoppen/starten",
|
||||
"Maintenance_Tool_arpscansw_text" : "Schaltet den arp-Scan an oder aus. Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird. Bereits laufende Scans werden dabei nicht beendet.",
|
||||
"Maintenance_Tool_arpscansw_noti" : "arp-Scan stoppen/starten",
|
||||
"Maintenance_Tool_arpscansw_noti_text" : "Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird.",
|
||||
"Maintenance_Tool_del_empty_macs" : "Alle Geräte ohne MAC löschen",
|
||||
"Maintenance_Tool_del_empty_macs_text" : "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geäte ohne MAC-Adresse werden aus der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_empty_macs_noti" : "Geräte löschen",
|
||||
"Maintenance_Tool_del_empty_macs_noti_text" : "Sind Sie sicher, dass Sie alle Geräte ohne MAC-Adresse löschen wollen?<br>(Vielleicht bevorzugenn Sie eine Archivierung.)",
|
||||
"Maintenance_Tool_upgrade_database_noti" : "Aktualisiere Datenbank",
|
||||
"Maintenance_Tool_upgrade_database_text" : "Mit dieser Schaltfläche wird die Datenbank aktualisiert, um das Diagramm der Netzwerkaktivitäten der letzten 12 Stunden zu aktivieren. Bitte sichern Sie Ihre Datenbank, falls Probleme auftreten.",
|
||||
"Maintenance_Tool_upgrade_database_noti_text" : "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen.",
|
||||
"Maintenance_Tool_del_alldev" : "Alle Geräte löschen",
|
||||
"Maintenance_Tool_del_alldev_text" : "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geräte werden in der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_alldev_noti" : "Geräte löschen",
|
||||
"Maintenance_Tool_del_alldev_noti_text" : "Sind Sie sich sicher, dass Sie alle Geräte löschen wollen?",
|
||||
"Maintenance_Tool_del_unknowndev" : "Löschen der (unknown) Geräte",
|
||||
"Maintenance_Tool_del_unknowndev_text" : "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Gräte mit dem Namen (unknown) werden aus der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_unknowndev_noti" : "Lösche (unknown) Geräte",
|
||||
"Maintenance_Tool_del_unknowndev_noti_text" : "Sind Sie sicher, dass Sie alle (unknown) Geräte aus der Datenbank löschen wollen?",
|
||||
"Maintenance_Tool_del_allevents" : "Alle Ereignisse löschen",
|
||||
"Maintenance_Tool_del_allevents_text" : "Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Ereignisse werden aus der Datenbank ge­löscht. Dies setzt auch die Anwesenheit zu­rück. Es kann ab dem Moment zu ungültigen Sitzungen kommen. Ein Scan, während das betreffende Gerät online ist, sollte das Problem lösen.",
|
||||
"Maintenance_Tool_del_allevents_noti" : "Alle Ereignisse löschen",
|
||||
"Maintenance_Tool_del_allevents_noti_text" : "Sind Sie sicher, dass Sie alle Ereignisse aus der Datenbank löschen wollen. Dies setzt die Anwesenheit aller Geräte zurück.",
|
||||
"Maintenance_Tool_backup" : "DB Sicherung",
|
||||
"Maintenance_Tool_backup_text" : "Die Datenbank-Sicher­ungen befinden sich im Datenbank-Ver­zeich­nis, gepackt als zip-Archive, benannt mit dem Erstellungs­datum. Es gibt keine maximale Anzahl von Backups.",
|
||||
"Maintenance_Tool_backup_noti" : "DB Sicherung",
|
||||
"Maintenance_Tool_backup_noti_text" : "Sind Sie sicher, dass Sie die Datenbank jetzt sichern möchten. Prüfen Sie, dass gerade keine Scans stattfinden.",
|
||||
"Maintenance_Tool_restore" : "DB Wiederherstellung",
|
||||
"Maintenance_Tool_restore_text" : "Das neuste Backup kann über diese Funk­tion wiederhergestellt werden. Ältere Sicher­ungen müssen manuell wieder­hergestellt wer­den. Es empfiehlt sich eine Integritäts­prüfung nach der Wieder­her­stellung zu machen, falls die Datenbank bei der Sicherung geöffnet war.",
|
||||
"Maintenance_Tool_restore_noti" : "DB Wiederherstellung",
|
||||
"Maintenance_Tool_restore_noti_text" : "Sind Sie sicher, dass Sie die Datenbank aus der neusten Sicherung wiederherstellen möchten? Prüfen Sie, dass gerade keine Scans stattfinden.",
|
||||
"Maintenance_Tool_purgebackup" : "Sicherungen aufräumen",
|
||||
"Maintenance_Tool_purgebackup_text" : "Es werden, bis auf die letzten 3 Backups, alle übrigen Backups gelöscht.",
|
||||
"Maintenance_Tool_purgebackup_noti" : "Sicherungen aufräumen",
|
||||
"Maintenance_Tool_purgebackup_noti_text" : "Sind Sie sicher, alle Backups, bis auf die letzten 3 löschen möchten?",
|
||||
"Maintenance_Tool_del_ActHistory" : "Löschen der Netzwerkaktivität",
|
||||
"Maintenance_Tool_del_ActHistory_text" : "Der Graph für die Netzwerkaktivität wird zurückgesetzt. Hierbei werden die Events nicht beeinflusst.",
|
||||
"Maintenance_Tool_del_ActHistory_noti" : "Netzwerkaktivität löschen",
|
||||
"Maintenance_Tool_del_ActHistory_noti_text" : "Sind Sie sicher, dass Sie die Netzwerkaktivität zurücksetzen möchten?",
|
||||
"BackDevices_Arpscan_disabled" : "Automatischer Arp-Scan deaktiviert.",
|
||||
"BackDevices_Arpscan_enabled" : "Automatischer Arp-Scan aktiviert.",
|
||||
"BackDevices_darkmode_disabled" : "Heller Modus aktiviert.",
|
||||
"BackDevices_darkmode_enabled" : "Dunkler Modus aktiviert.",
|
||||
"BackDevices_Restore_CopError" : "Die originale Datenbank konnte nicht kopiert werden.",
|
||||
"BackDevices_Restore_okay" : "Die Wiederherstellung wurde erfolgreich ausgeführt.",
|
||||
"BackDevices_Restore_Failed" : "Die Wiederherstellung ist fehlgeschlagen. Stellen Sie das Backup manuell her.",
|
||||
"BackDevices_Backup_CopError" : "Die originale Datenbank konnte nicht gesichert werden.",
|
||||
"BackDevices_Backup_okay" : "Das Backup wurde erfolgreich beendet.",
|
||||
"BackDevices_Backup_Failed" : "Das Backup wurde teilweise ausgeführt. Das Archiv ist entweder leer oder nicht vorhanden.",
|
||||
"BackDevices_DBTools_DelDev_a" : "Gerät erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelDev_b" : "Geräte erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelEvents" : "Events erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelEventsError" : "Fehler beim Löschen der Ereignisse.",
|
||||
"BackDevices_DBTools_DelDevError_a" : "Fehler beim Löschen des Gerätes.",
|
||||
"BackDevices_DBTools_DelDevError_b" : "Fehler beim Löschen der Geräte.",
|
||||
"BackDevices_DBTools_UpdDev" : "Gerät erfolgreich aktualisiert.",
|
||||
"BackDevices_DBTools_UpdDevError" : "Fehler beim Aktualisieren des Gerätes.",
|
||||
"BackDevices_DBTools_Upgrade" : "Datenbank erfolgreich aktualisiert.",
|
||||
"BackDevices_DBTools_UpgradeError" : "Fehler beim Aktualisieren der Datenbank.",
|
||||
"BackDevices_DBTools_Purge" : "Die ältesten Backups wurden gelöscht.",
|
||||
"BackDevices_DBTools_DelActHistory" : "Die Anzeige der Netzwerkaktivität wurde zurückgesetzt.",
|
||||
"BackDevices_DBTools_DelActHistoryError" : "Fehler beim Zurücksetzen der Netzwerkaktivitätsanzeige.",
|
||||
"Network_Title" : "Netzwerkübersicht",
|
||||
"Network_ManageDevices" : "Geräte verwalten",
|
||||
"Network_ManageAdd" : "Gerät hinzufügen",
|
||||
"Network_ManageEdit" : "Gerät bearbeiten",
|
||||
"Network_ManageDel" : "Gerät löschen",
|
||||
"Network_ManageAdd_Name" : "Name des Gerätes",
|
||||
"Network_ManageAdd_Name_text" : "Name ohne Sonderzeichen",
|
||||
"Network_ManageAdd_Type" : "Gerätetyp",
|
||||
"Network_ManageAdd_Type_text" : "-- Typ wählen --",
|
||||
"Network_ManageAdd_Port" : "Portanzahl",
|
||||
"Network_ManageAdd_Port_text" : "bei WLAN oder Powerline leer lassen",
|
||||
"Network_ManageAdd_Submit" : "Hinzufügen",
|
||||
"Network_ManageEdit_ID" : "Gerät zum Bearbeiten auswählen",
|
||||
"Network_ManageEdit_ID_text" : "-- Gerät wählen --",
|
||||
"Network_ManageEdit_Name" : "Neuer Name",
|
||||
"Network_ManageEdit_Name_text" : "Name ohne Sonderzeichen",
|
||||
"Network_ManageEdit_Type" : "Neuer Typ",
|
||||
"Network_ManageEdit_Type_text" : "-- Typ wählen --",
|
||||
"Network_ManageEdit_Port" : "Neue Portanzahl",
|
||||
"Network_ManageEdit_Port_text" : "bei WLAN oder Powerline leer lassen",
|
||||
"Network_ManageEdit_Submit" : "Speichern",
|
||||
"Network_ManageDel_Name" : "Gerät zum Löschen auswählen",
|
||||
"Network_ManageDel_Name_text" : "-- Gerät wählen --",
|
||||
"Network_ManageDel_Submit" : "Löschen",
|
||||
"Network_Table_State" : "Status",
|
||||
"Network_Table_Hostname" : "Gerätename",
|
||||
"Network_Table_IP" : "IP",
|
||||
"HelpFAQ_Title" : "Hilfe / FAQ",
|
||||
"HelpFAQ_Cat_General" : "Allgemein",
|
||||
"HelpFAQ_Cat_Detail" : "Detailansicht",
|
||||
"HelpFAQ_Cat_General_100_head" : "Die Uhr oben rechts und die Zeiten der Events/Anwesenheit stimmen nicht (Zeitverschiebung).",
|
||||
"HelpFAQ_Cat_General_100_text_a" : "Auf deinem PC ist für die PHP Umgebung folgende Zeitzone voreingestellt:",
|
||||
"HelpFAQ_Cat_General_100_text_b" : "Sollte dies nicht die Zeitzone sein, in der du dich aufhältst, solltest du die Zeitzone in der PHP Konfigurationsdatei anpassen. Diese findest du in diesem Verzeichnis:",
|
||||
"HelpFAQ_Cat_General_100_text_c" : "Suche in dieser Datei nach dem Eintrag 'date.timezone', entferne ggf. das führende ';' und trage die gewünschte Zeitzone ein. Eine Liste mit den unterstützten Zeitzonen findest du hier (<a href=\"https://www.php.net/manual/de/timezones.php\" target=\"blank\">Link</a>).",
|
||||
"HelpFAQ_Cat_General_101_head" : "Mein Netzwerk scheint langsamer zu werden, Streaming ruckelt.",
|
||||
"HelpFAQ_Cat_General_101_text" : "Es kann durchaus sein, das leistungsschwache Geräte mit der Art und Weise, wie Pi.Alert neue Geräte im Netzwerk erkennt, an ihre Leistungsgrenzen kommen. Dies verstärkt sich noch einmal, <br/> wenn diese Geräte per WLAN mit dem Netzwerk kommunizieren. Lösungen wären hier, wenn möglich ein Wechsel auf eine Kabelverbindung oder, falls das Geräte nur einen begrenzten Zeitraum genutzt <br/> werden soll, den arp-Scan auf der Wartungsseite zu pausieren.",
|
||||
"HelpFAQ_Cat_General_102_head" : "Ich bekomme die Meldung, dass die Datenbank schreibgeschützt (read only) ist.",
|
||||
"HelpFAQ_Cat_General_102_text" : "Prüfe im Pi.Alert verzeichnis ob der Ordner der Datenbank (db) die richtigen Rechte zugewiesen bekommen hat:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (dein Username) www-data</span><br> Sollte die Berechtigung nicht stimmen, kannst du sie mit folgenden Befehlen im Terminal oder der Konsole wieder setzen:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data ~/pialert/db<br> chmod -R 770 ~/pialert/db </span><br> Wenn die Datenbank danach noch immer schreibgeschützt ist, versuche eine erneute Installation, oder das Zuückspielen eines Datenbank-Backups über die Wartungsseite.",
|
||||
"HelpFAQ_Cat_General_102docker_head" : "(🐳 Docker only) Database issues (AJAX errors, read-only, not found)",
|
||||
"HelpFAQ_Cat_General_102docker_text" : "Double-check you have followed the <a href=\"https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles\">dockerfile readme (most up-to-date info)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Download the <a href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/db/pialert.db\">original DB from GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Map the <code>pialert.db</code> file (<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">⚠</g-emoji> not folder) from above to <code>/home/pi/pialert/db/pialert.db</code> (see <a href=\"https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles#-examples\">Examples</a> for details).</li><li data-sourcepos=\"51:4-51:161\">If facing issues (AJAX errors, can not write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under <code>/home/pi/pialert/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">To solve permission issues you can also try to create a DB backup and then run a DB Restore via the <strong>Maintenance > Backup/Restore</strong> section.</li> <li data-sourcepos=\"53:4-53:228\">If the database is in read-only mode you can solve this by setting the owner and group by executing the following command on the host system: <code>docker exec pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db</code>.</li></ul>",
|
||||
"HelpFAQ_Cat_General_103_head" : "Die Login-Seite erscheint nicht, auch nicht nach der Passwortänderung.",
|
||||
"HelpFAQ_Cat_General_103_text" : "Neben dem Passwort, muss in der Konfigurationsdatei <span class=\"text-danger help_faq_code\">~/pialert/config/pialert.conf</span> auch der Parameter <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> auf <span class=\"text-danger help_faq_code\">True</span> gesetzt sein.",
|
||||
"HelpFAQ_Cat_Device_200_head" : "Ich habe, mir nicht bekannte, Geräte in meiner Liste. Nach dem Löschen tauchen diese immer wieder auf.",
|
||||
"HelpFAQ_Cat_Device_200_text" : "Wenn du Pi-hole verwendest, beachte bitte, dass Pi.Alert Informationen von Pi-hole abruft. Pausiere Pi.Alert, gehe in Pi-hole auf die Settings-Seite und lösche ggf. die betreffende DHCP-Lease. Anschließend schaue, ebenfalls in Pi-hole, unter Tools -> Network, ob sich dort die immer wiederkehrenden Hosts finden lassen. Wenn ja, lösche diese dort ebenfalls. Nun kannst du Pi.Alert wieder starten. Jetzt sollte das Gerät/die Geräte nicht mehr auftauchen.",
|
||||
"HelpFAQ_Cat_Detail_300_head" : "Was bedeutet ",
|
||||
"HelpFAQ_Cat_Detail_300_text_a" : "meint ein Netzwerkgerät (welches den typ AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,USB LAN Adapter, USB WIFI Adapter, or Internet eingestellt hat)",
|
||||
"HelpFAQ_Cat_Detail_300_text_b" : "bezeichnet die Anschlussnummer/Portnummer, an der das gerade bearbeitete Gerät mit diesem Netzwerkgerät verbunden ist.",
|
||||
"HelpFAQ_Cat_Detail_301_head_a" : "Wann wird nun gescannt? Bei ",
|
||||
"HelpFAQ_Cat_Detail_301_head_b" : " steht 1min aber der Graph zeigt 5min - Abstände an.",
|
||||
"HelpFAQ_Cat_Detail_301_text" : "Den zeitlichen Abstand zwischen den Scans legt der \"Cronjob\" fest, welcher standardmäßig auf 5min eingestellt ist. Die Benennung \"1min\" bezieht sich auf die zu erwartende Dauer des Scans. Abhängig vor der Netzwerkkonfiguration kann diese Zeitangabe variieren. Um den Cronjob zu bearbeiten, kannst du im Terminal/der Konsole <span class=\"text-danger help_faq_code\">crontab -e</span> eingeben und den Intervall ändern.",
|
||||
"HelpFAQ_Cat_Detail_302_head_a" : "Was bedeutet ",
|
||||
"HelpFAQ_Cat_Detail_302_head_b" : " und warum kann ich das nicht auswählen?",
|
||||
"HelpFAQ_Cat_Detail_302_text" : "Einige moderne Geräte generieren aus Datenschutzgründen zufällige MAC-Adressen, die keinem Hersteller mehr zugeordnet werden können und welche sich mit jeder neuen Verbindung wieder ändern. Pi.Alert erkennt, ob es sich um eine solche zufällige MAC-Adresse handelt und aktiviert diese \"Feld\" automatisch. Um das Verhalten abzustellen, muss du in deinem Endgerät schauen, wie du die MAC-Adressen-Generierung deaktivierst.",
|
||||
"HelpFAQ_Cat_Detail_303_head" : "Was ist Nmap und wozu dient es?",
|
||||
"HelpFAQ_Cat_Detail_303_text" : "Nmap ist ein Netzwerkscanner mit vielfältigen Möglichkeiten.<br> Wenn ein neues Gerät in deiner Liste auftaucht, hast du die Möglichkeit über den Nmap-Scan genauere Informationen über das Gerät zu erhalten.",
|
||||
"HelpFAQ_Cat_Presence_400_head" : "Geräte werden mit einer gelben Markierung und dem Hinweis \"missing Event\" angezeigt.",
|
||||
"HelpFAQ_Cat_Presence_400_text" : "Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis Pi.Alert mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte Pi.Alert mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
||||
"HelpFAQ_Cat_Presence_401_head" : "Ein Gerät wird als Anwesend angezeigt, obwohl es \"Offline\" ist.",
|
||||
"HelpFAQ_Cat_Presence_401_text" : "Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis Pi.Alert mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte Pi.Alert mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
||||
"HelpFAQ_Cat_Network_600_head" : "Was bringt mir diese Seite?",
|
||||
"HelpFAQ_Cat_Network_600_text" : "Diese Seite soll dir die Möglichkeit bieten, die Belegung deiner Netzwerkgeräte abzubilden. Dazu kannst du einen oder mehrere Switches, WLANs, Router, etc. erstellen, sie ggf. mit einer Portanzahl versehen und bereits erkannte Geräte diesen zuordnen. Diese Zuordnung erfolgt in der Detailansicht, des zuzuordnenden Gerätes. So ist es dir möglich, schnell festzustellen an welchem Port ein Host angeschlossen und ob er online ist.",
|
||||
"REPORT_TITLE" : "Bericht",
|
||||
"REPORT_ERROR" : "Die gesuchte Seite ist vorübergehend nicht verfügbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
|
||||
"SYSTEM_TITLE" : "Systeminformationen",
|
||||
"Plugins_Out_of" : "von",
|
||||
"Speedtest_Results" : "Ergebnisse des Geschwindigkeitstests",
|
||||
"Systeminfo_General" : "Allgemein",
|
||||
"Systeminfo_General_Full_Date": "Vollständiges Datum:",
|
||||
"Systeminfo_General_Date": "Datum:",
|
||||
"Systeminfo_General_Date2" "Datum2:",
|
||||
"Systeminfo_General_TimeZone": "Zeitzone:",
|
||||
"Systeminfo_This_Client" : "Dieser Mandant",
|
||||
"Systeminfo_Client_User_Agent": "Benutzeragent:",
|
||||
"Systeminfo_Client_Resolution": "Browserauflösung:",
|
||||
"Systeminfo_CPU" : "CPU",
|
||||
"Systeminfo_CPU_Vendor": "CPU-Anbieter:",
|
||||
"Systeminfo_CPU_Name": "CPU-Name:",
|
||||
"Systeminfo_CPU_Cores": "CPU-Kerne:",
|
||||
"Systeminfo_CPU_Speed": "CPU-Geschwindigkeit:",
|
||||
"Systeminfo_CPU_Temp": "CPU-Temp:",
|
||||
"Systeminfo_Memory" : "Speicher",
|
||||
"Systeminfo_Memory_Usage": "Speichernutzung:",
|
||||
"Systeminfo_Memory_Usage_Percent": "Speicher %:",
|
||||
"Systeminfo_Memory_Total_Memory": "Gesamtspeicher:",
|
||||
"Systeminfo_Motherboard" : "Hauptplatine",
|
||||
"Systeminfo_Motherboard_BIOS": "BIOS:",
|
||||
"Systeminfo_Motherboard_BIOS_Date": "BIOS-Datum:",
|
||||
"Systeminfo_Motherboard_BIOS_Vendor": "BIOS-Anbieter:",
|
||||
"Systeminfo_Motherboard_Manufactured": "Hergestellt von:",
|
||||
"Systeminfo_Motherboard_Name": "Name:",
|
||||
"Systeminfo_Motherboard_Revision": "Revision:",
|
||||
"Systeminfo_Storage" : "Lagerung",
|
||||
"Systeminfo_Storage_Mount": "Mountpunkt:",
|
||||
"Systeminfo_Storage_Device": "Gerät:",
|
||||
"Systeminfo_Storage_Size": "Größe:",
|
||||
"Systeminfo_Storage_Type": "Typ:",
|
||||
"Systeminfo_Storage_Usage" : "Speicherverwendung",
|
||||
"Systeminfo_Storage_Usage_Mount": "Mountpunkt:",
|
||||
"Systeminfo_Storage_Usage_Total": "Gesamt:",
|
||||
"Systeminfo_Storage_Usage_Used": "Verwendet:",
|
||||
"Systeminfo_Storage_Usage_Free": "Kostenlos:",
|
||||
"Systeminfo_Network" : "Netzwerk",
|
||||
"Systeminfo_Network_Accept_Encoding": "Kodierung akzeptieren:",
|
||||
"Systeminfo_Network_Accept_Language": "Sprache akzeptieren:",
|
||||
"Systeminfo_Network_Connection_Port": "Verbindungsport:",
|
||||
"Systeminfo_Network_HTTP_Host": "HTTP-Host:",
|
||||
"Systeminfo_Network_HTTP_Referer": "HTTP-Referer:",
|
||||
"Systeminfo_Network_HTTP_Referer_String": "Kein HTTP-Referer",
|
||||
"Systeminfo_Network_IP": "IP Internet:",
|
||||
"Systeminfo_Network_IP_Connection": "IP-Verbindung:",
|
||||
"Systeminfo_Network_IP_Server": "Server-IP:",
|
||||
"Systeminfo_Network_MIME": "MIME:",
|
||||
"Systeminfo_Network_Request_Method": "Anfragemethode:",
|
||||
"Systeminfo_Network_Request_URI": "URI anfordern:",
|
||||
"Systeminfo_Network_Request_Time": "Anfragezeit:",
|
||||
"Systeminfo_Network_Secure_Connection": "Sichere Verbindung:",
|
||||
"Systeminfo_Network_Secure_Connection_String": "Nein (HTTP)",
|
||||
"Systeminfo_Network_Server_Name": "Servername:",
|
||||
"Systeminfo_Network_Server_Name_String": "Servername nicht gefunden",
|
||||
"Systeminfo_Network_Server_Query": "Serverabfrage:",
|
||||
"Systeminfo_Network_Server_Query_String": "Keine Abfragezeichenfolge",
|
||||
"Systeminfo_Network_Server_Version": "Serverversion:",
|
||||
"Systeminfo_Network_Hardware" : "Netzwerk Hardware",
|
||||
"Systeminfo_Services" : "Dienste",
|
||||
"Systeminfo_Services_Name": "Dienstname",
|
||||
"Systeminfo_Services_Description": "Dienstbeschreibung",
|
||||
"Systeminfo_System" : "System",
|
||||
"Systeminfo_System_Architecture": "Architektur:",
|
||||
"Systeminfo_System_AVG": "AVG laden:",
|
||||
"Systeminfo_System_Kernel": "Kernel:",
|
||||
"Systeminfo_System_OSVersion": "Betriebssystem:",
|
||||
"Systeminfo_System_Running_Processes" : "Laufende Prozesse:",
|
||||
"Systeminfo_System_System": "System:",
|
||||
"Systeminfo_System_Uname": "Uname:",
|
||||
"Systeminfo_System_Uptime": "Betriebszeit:",
|
||||
"Systeminfo_USB_Devices" : "USB-Geräte"
|
||||
"de_de":{
|
||||
"About_Title":"Open Source Network Guard",
|
||||
"About_Design":"Designed for:",
|
||||
"About_Exit":"Sign out",
|
||||
"Gen_Delete":"Löschen",
|
||||
"Gen_Cancel":"Abbrechen",
|
||||
"Gen_Okay":"Ok",
|
||||
"Gen_Purge":"Aufräumen",
|
||||
"Gen_Backup":"Sichern",
|
||||
"Gen_Restore":"Wiederherstellen",
|
||||
"Gen_Switch":"Umschalten",
|
||||
"Gen_AreYouSure":"Sind Sie sich sicher?",
|
||||
"Login_Box":"Passwort eingeben",
|
||||
"Login_Remember":"Passwort speichern",
|
||||
"Login_Remember_small":"(für 7 Tage gültig)",
|
||||
"Login_Submit":"Anmelden",
|
||||
"Login_Psw_run":"Um das Passwort zu ändern nutze:",
|
||||
"Login_Psw_new":"neues_passwort",
|
||||
"Login_Psw_folder":"im Ordner ~/pialert/config",
|
||||
"Login_Psw_alert":"Sicherheitshinweis!",
|
||||
"Login_Psw-box":"Passwort",
|
||||
"Login_Toggle_Info":"Passwort Informationen",
|
||||
"Login_Toggle_Info_headline":"Passwort Information",
|
||||
"Login_Toggle_Alert_headline":"Passwort Warnung!",
|
||||
"Navigation_Devices":"Geräte",
|
||||
"Navigation_Presence":"Anwesenheit",
|
||||
"Navigation_Events":"Ereignisse",
|
||||
"Navigation_Report":"Bericht",
|
||||
"Navigation_Maintenance":"Wartung",
|
||||
"Navigation_Settings":"Einstellung",
|
||||
"Navigation_SystemInfo":"System info",
|
||||
"Navigation_Network":"Netzwerk",
|
||||
"Navigation_HelpFAQ":"Hilfe / FAQ",
|
||||
"Device_Title":"Geräte",
|
||||
"Device_Shortcut_AllDevices":"Alle Geräte",
|
||||
"Device_Shortcut_Connected":"Verbunden",
|
||||
"Device_Shortcut_Favorites":"Favoriten",
|
||||
"Device_Shortcut_NewDevices":"Neue Geräte",
|
||||
"Device_Shortcut_DownAlerts":"Down Meldungen",
|
||||
"Device_Shortcut_Archived":"Archiviert",
|
||||
"Device_Shortcut_Devices":"Geräte",
|
||||
"Device_Shortcut_OnlineChart":"Gerätepräsenz im Laufe der Zeit",
|
||||
"Device_TableHead_Name":"Name",
|
||||
"Device_TableHead_Owner":"Eigentümer",
|
||||
"Device_TableHead_Type":"Typ",
|
||||
"Device_TableHead_Favorite":"Favorit",
|
||||
"Device_TableHead_Group":"Gruppe",
|
||||
"Device_TableHead_FirstSession":"Erste Sitzg.",
|
||||
"Device_TableHead_LastSession":"Letzte Sitzg.",
|
||||
"Device_TableHead_LastIP":"Letzte IP",
|
||||
"Device_TableHead_MAC":"MAC",
|
||||
"Device_TableHead_LastIPOrder":"Last IP Order",
|
||||
"Device_TableHead_Rowid":"Zeilennummer",
|
||||
"Device_TableHead_Status":"Status",
|
||||
"Device_Searchbox":"Suche",
|
||||
"Device_Tablelenght":"Zeige _MENU_ Einträge",
|
||||
"Device_Tablelenght_all":"Alle",
|
||||
"Device_Table_info":"Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"Device_Table_nav_next":"Nächste",
|
||||
"Device_Table_nav_prev":"Zurück",
|
||||
"Presence_Title":"Anwesenheit pro Gerät",
|
||||
"Presence_Loading":"Laden...",
|
||||
"Presence_Shortcut_AllDevices":"Alle Geräte",
|
||||
"Presence_Shortcut_Connected":"Verbunden",
|
||||
"Presence_Shortcut_Favorites":"Favoriten",
|
||||
"Presence_Shortcut_NewDevices":"Neue Geräte",
|
||||
"Presence_Shortcut_DownAlerts":"Down Meldungen",
|
||||
"Presence_Shortcut_Archived":"Archiviert",
|
||||
"Presence_Shortcut_Devices":"Geräte",
|
||||
"Presence_CallHead_Devices":"Geräte",
|
||||
"Presence_CalHead_lang":"de",
|
||||
"Presence_CalHead_year":"Jahr",
|
||||
"Presence_CalHead_quarter":"Quartal",
|
||||
"Presence_CalHead_month":"Monat",
|
||||
"Presence_CalHead_week":"Woche",
|
||||
"Events_Title":"Ereignisse",
|
||||
"Events_Loading":"Laden...",
|
||||
"Events_Periodselect_today":"Heute",
|
||||
"Events_Periodselect_LastWeek":"Letzte Woche",
|
||||
"Events_Periodselect_LastMonth":"Letzter Monat",
|
||||
"Events_Periodselect_LastYear":"Letztes Jahr",
|
||||
"Events_Periodselect_All":"Alle Ereignisse",
|
||||
"Events_Shortcut_AllEvents":"Alle Ereignisse",
|
||||
"Events_Shortcut_Sessions":"Sitzungen",
|
||||
"Events_Shortcut_MissSessions":"fehlende Sitzungen",
|
||||
"Events_Shortcut_VoidSessions":"beendete Sitzungen",
|
||||
"Events_Shortcut_NewDevices":"Neue Geräte",
|
||||
"Events_Shortcut_DownAlerts":"Down Meldungen",
|
||||
"Events_Shortcut_Events":"Ereignisse",
|
||||
"Events_TableHead_Order":"Order",
|
||||
"Events_TableHead_Device":"Gerät",
|
||||
"Events_TableHead_Owner":"Eigentümer",
|
||||
"Events_TableHead_Date":"Datum",
|
||||
"Events_TableHead_EventType":"Ereignis Typ",
|
||||
"Events_TableHead_Connection":"Verbindung",
|
||||
"Events_TableHead_Disconnection":"Trennung",
|
||||
"Events_TableHead_Duration":"Dauer",
|
||||
"Events_TableHead_DurationOrder":"Duration Order",
|
||||
"Events_TableHead_IP":"IP",
|
||||
"Events_TableHead_IPOrder":"IP Order",
|
||||
"Events_TableHead_AdditionalInfo":"Zusätzliche Info",
|
||||
"Events_Searchbox":"Suche",
|
||||
"Events_Tablelenght":"Zeige _MENU_ Einträge",
|
||||
"Events_Tablelenght_all":"Alle",
|
||||
"Events_Table_info":"Zeige _START_ bis _END_ von _TOTAL_ Einträgen",
|
||||
"Events_Table_nav_next":"Nächste",
|
||||
"Events_Table_nav_prev":"Zurück",
|
||||
"DevDetail_Loading":"Laden ...",
|
||||
"DevDetail_Periodselect_today":"Heute",
|
||||
"DevDetail_Periodselect_LastWeek":"Letzte Woche",
|
||||
"DevDetail_Periodselect_LastMonth":"Letzter Monat",
|
||||
"DevDetail_Periodselect_LastYear":"Letztes Jahr",
|
||||
"DevDetail_Periodselect_All":"Alle Infos",
|
||||
"DevDetail_Shortcut_CurrentStatus":"aktueller Status",
|
||||
"DevDetail_Shortcut_Sessions":"Sitzungen",
|
||||
"DevDetail_Shortcut_Presence":"Anwesenheit",
|
||||
"DevDetail_Shortcut_DownAlerts":"Down Meldungen",
|
||||
"DevDetail_Tab_Details":"Details",
|
||||
"DevDetail_Tab_Tools":"<i class=\"fa fa-screwdriver-wrench\"></i> Tools",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Title":"Internetinformationen",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Description":"Das Internet-Info-Tool zeigt Informationen über die Internetverbindung an, wie z. B. IP-Adresse, Stadt, Land, Ortsvorwahl und Zeitzone.",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Start":"Internet-Info starten",
|
||||
"DevDetail_Tab_Tools_Internet_Info_Error":"Es ist ein Fehler aufgetreten",
|
||||
"DevDetail_Tab_Tools_Nslookup_Title":"Nslookup",
|
||||
"DevDetail_Tab_Tools_Nslookup_Description":"Nslookup ist ein Befehlszeilentool zur Abfrage des Domain Name System (DNS). DNS ist ein System, das Domainnamen wie www.google.com in IP-Adressen wie 172.217.0.142 übersetzt. ",
|
||||
"DevDetail_Tab_Tools_Nslookup_Start":"Nslookup starten",
|
||||
"DevDetail_Tab_Tools_Nslookup_Error":"Fehler: IP-Adresse ist ungültig",
|
||||
"DevDetail_Tab_Tools_Speedtest_Title":"Speedtest test",
|
||||
"DevDetail_Tab_Tools_Speedtest_Description":"Das Speedtest-Tool misst die Download-Geschwindigkeit, Upload-Geschwindigkeit und Latenz der Internetverbindung.",
|
||||
"DevDetail_Tab_Tools_Speedtest_Start":"Speedtest starten",
|
||||
"DevDetail_Tab_Tools_Traceroute_Title":"Traceroute",
|
||||
"DevDetail_Tab_Tools_Traceroute_Description":"Traceroute ist ein Netzwerkdiagnosebefehl, mit dem der Pfad verfolgt wird, den Datenpakete von einem Host zu einem anderen nehmen.<br><br>Der Befehl verwendet das Internet Control Message Protocol (ICMP), um Pakete an Zwischenknoten auf der Route zu senden, jeden Zwischenknoten Der Knoten antwortet mit einem ICMP-Timeout-Paket (TTL-Zeitüberschreitung).<br><br>Die Ausgabe des Traceroute-Befehls zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Die Ausgabe der Traceroute Der Befehl zeigt die IP-Adresse jedes Zwischenknotens auf der Route an.<br><br>Der Befehl „traceroute“ kann zur Diagnose von Netzwerkproblemen wie Verzögerungen, Paketverlust und blockierten Routen verwendet werden.<br><br>Das ist auch möglich kann verwendet werden, um den Standort eines Zwischenknotens in einem Netzwerk zu identifizieren.",
|
||||
"DevDetail_Tab_Tools_Traceroute_Start":"Traceroute starten",
|
||||
"DevDetail_Tab_Tools_Traceroute_Error":"Fehler: IP-Adresse ist ungültig",
|
||||
"DevDetail_Tab_Nmap":"Nmap",
|
||||
"DevDetail_Tab_NmapTableIndex":"Index",
|
||||
"DevDetail_Tab_NmapTableTime":"Zeit",
|
||||
"DevDetail_Tab_NmapTablePort":"Port",
|
||||
"DevDetail_Tab_NmapTableState":"Status",
|
||||
"DevDetail_Tab_NmapTableService":"Dienst",
|
||||
"DevDetail_Tab_NmapTableExtra":"Extra",
|
||||
"DevDetail_Tab_Sessions":"Sitzungen",
|
||||
"DevDetail_Tab_Presence":"Anwesenheit",
|
||||
"DevDetail_Tab_Events":"Ereignisse",
|
||||
"DevDetail_Tab_EventsTableDate":"Datum",
|
||||
"DevDetail_Tab_EventsTableEvent":"Ereignistype",
|
||||
"DevDetail_Tab_EventsTableIP":"IP",
|
||||
"DevDetail_Tab_EventsTableInfo":"Zusätzliche Informationen",
|
||||
"DevDetail_MainInfo_Title":"Haupt Infos",
|
||||
"DevDetail_MainInfo_mac":"MAC",
|
||||
"DevDetail_MainInfo_Name":"Name",
|
||||
"DevDetail_MainInfo_Owner":"Eigen-­tümer",
|
||||
"DevDetail_MainInfo_Type":"Typ",
|
||||
"DevDetail_MainInfo_Vendor":"Hersteller",
|
||||
"DevDetail_MainInfo_Favorite":"Favorit",
|
||||
"DevDetail_MainInfo_Group":"Gruppe",
|
||||
"DevDetail_MainInfo_Location":"Standort",
|
||||
"DevDetail_MainInfo_Comments":"Notiz",
|
||||
"DevDetail_MainInfo_Network":"Netzwerk Knoten",
|
||||
"DevDetail_MainInfo_Network_Port":"Netzwerk Knoten Port",
|
||||
"DevDetail_SessionInfo_Title":"Sitzungsinfos",
|
||||
"DevDetail_SessionInfo_Status":"Status",
|
||||
"DevDetail_SessionInfo_FirstSession":"Erste Sitzung",
|
||||
"DevDetail_SessionInfo_LastSession":"Letzte Sitzung",
|
||||
"DevDetail_SessionInfo_LastIP":"Letzte IP",
|
||||
"DevDetail_SessionInfo_StaticIP":"Statische IP",
|
||||
"DevDetail_EveandAl_Title":"Ereignisse & Alarme einstellen",
|
||||
"DevDetail_EveandAl_ScanCycle":"Scan Abstand",
|
||||
"DevDetail_EveandAl_AlertAllEvents":"Melde alle Ereignisse",
|
||||
"DevDetail_EveandAl_AlertDown":"Melde Down",
|
||||
"DevDetail_EveandAl_Skip":"pausiere wiederhol. Meldungen für",
|
||||
"DevDetail_EveandAl_NewDevice":"Neues Gerät",
|
||||
"DevDetail_EveandAl_Archived":"Archivierung",
|
||||
"DevDetail_EveandAl_RandomMAC":"Zufällige MAC",
|
||||
"DevDetail_EveandAl_ScanCycle_a":"Gerät scannen",
|
||||
"DevDetail_EveandAl_ScanCycle_z":"Gerät nicht scannen",
|
||||
"DevDetail_button_Delete":"Lösche Gerät",
|
||||
"DevDetail_button_Reset":"Verwerfen",
|
||||
"DevDetail_button_Save":"Speichern",
|
||||
"DevDetail_button_DeleteEvents":"Lösche Events",
|
||||
"DevDetail_button_DeleteEvents_Warning":"Sind Sie sicher, dass Sie alle Ereignisse dieses Geräts löschen möchten? (dies löscht den Ereignisverlauf und die Sitzungen und könnte bei ständigen (anhaltenden) Benachrichtigungen helfen)",
|
||||
"DevDetail_SessionTable_Order":"Order",
|
||||
"DevDetail_SessionTable_Connection":"Verbindung",
|
||||
"DevDetail_SessionTable_Disconnection":"Trennung",
|
||||
"DevDetail_SessionTable_Duration":"Dauer",
|
||||
"DevDetail_SessionTable_IP":"IP",
|
||||
"DevDetail_SessionTable_Additionalinfo":"Zusätzliche Info",
|
||||
"DevDetail_Events_CheckBox":"Blende Verbindungs-Ereignisse aus",
|
||||
"DevDetail_Nmap_buttonFast":"Schneller Scan",
|
||||
"DevDetail_Nmap_buttonDefault":"Standard Scan",
|
||||
"DevDetail_Nmap_buttonDetail":"Detailierter Scan",
|
||||
"DevDetail_Nmap_buttonFast_text":"Schneller Scan: Überprüft nur die wichtigsten 100 Ports (wenige Sekunden)",
|
||||
"DevDetail_Nmap_buttonDefault_text":"Standard Scan: Nmap scannt die ersten 1.000 Ports für jedes angeforderte Scan-Protokoll. Damit werden etwa 93 % der TCP-Ports und 49 % der UDP-Ports erfasst. (ca. 5-10 Sekunden)",
|
||||
"DevDetail_Nmap_buttonDetail_text":"Detailierter Scan: Standardscan mit aktivierter Betriebssystemerkennung, Versionserkennung, Skript-Scan und Traceroute (bis zu 30 oder mehr Sekunden)",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery":"Ohne Erreichbarkeitsprüfung",
|
||||
"DevDetail_Nmap_buttonSkipDiscovery_text":"Ohne Erreichbarkeitsprüfung (-Pn Parameter): Standard Scan bei dem nmap annimmt, dass der Host erreichbar ist.",
|
||||
"DevDetail_Nmap_Scans":"Nmap Scans",
|
||||
"Maintenance_Title":"Wartungswerkzeuge",
|
||||
"Maintenance_database_path":"Datenbank-Pfad",
|
||||
"Maintenance_database_size":"Datenbank-Größe",
|
||||
"Maintenance_database_lastmod":"Letzte Änderung",
|
||||
"Maintenance_database_backup":"DB Sicherungen",
|
||||
"Maintenance_database_backup_found":"Sicherungen verfügbar",
|
||||
"Maintenance_database_backup_total":"Speicherplatz insgesamt",
|
||||
"Maintenance_arp_status":"Scan Status",
|
||||
"Maintenance_arp_status_off":"ist im Moment deaktiviert",
|
||||
"Maintenance_arp_status_on":"Scan(s) sind gerade aktiv",
|
||||
"Maintenance_themeselector_lable":"Skin Auswahl",
|
||||
"Maintenance_themeselector_empty":"Skin wählen",
|
||||
"Maintenance_themeselector_text":"Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_themeselector_apply":"Übernehmen",
|
||||
"Maintenance_lang_selector_lable":"Sprachauswahl",
|
||||
"Maintenance_lang_selector_empty":"Sprache wählen",
|
||||
"Maintenance_lang_en_us":"Englisch (US)",
|
||||
"Maintenance_lang_de_de":"Deutsch (DE)",
|
||||
"Maintenance_lang_es_es":"Spanisch (ES)",
|
||||
"Maintenance_lang_selector_text":"Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_lang_selector_apply":"Übernehmen",
|
||||
"Maintenance_Tools_Tab_Settings":"Einstellungen",
|
||||
"Maintenance_Tools_Tab_Tools":"Werkzeuge",
|
||||
"Maintenance_Tools_Tab_BackupRestore":"Sicherg. / Wiederherstellg.",
|
||||
"Maintenance_Tools_Tab_Logging":"Logs",
|
||||
"Maintenance_Tool_darkmode":"Darstellungswechsel (Dunkel/Hell)",
|
||||
"Maintenance_Tool_darkmode_text":"Wechselt zwischen der hellen und der dunklen Darstellung. Wenn der Wechsel nicht richtig funktionieren sollte, versuchen Sie den Browsercache zu löschen. Die Änderung findet serverseitig statt, betrifft also alle verwendeten Geräte.",
|
||||
"Maintenance_Tool_darkmode_noti":"Darstellungswechsel",
|
||||
"Maintenance_Tool_darkmode_noti_text":"Wechselt zwischen der hellen und der dunklen Darstellung. Wenn die Umschaltung nicht ordentlich funktionieren sollte, versuchen Sie den Browsercache zu löschen.",
|
||||
"Maintenance_Tool_arpscansw":"arp-Scan stoppen/starten",
|
||||
"Maintenance_Tool_arpscansw_text":"Schaltet den arp-Scan an oder aus. Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird. Bereits laufende Scans werden dabei nicht beendet.",
|
||||
"Maintenance_Tool_arpscansw_noti":"arp-Scan stoppen/starten",
|
||||
"Maintenance_Tool_arpscansw_noti_text":"Wenn der Scan aus ist, bleibt er so lange aus bis er wieder aktiviert wird.",
|
||||
"Maintenance_Tool_del_empty_macs":"Alle Geräte ohne MAC löschen",
|
||||
"Maintenance_Tool_del_empty_macs_text":"Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geäte ohne MAC-Adresse werden aus der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_empty_macs_noti":"Geräte löschen",
|
||||
"Maintenance_Tool_del_empty_macs_noti_text":"Sind Sie sicher, dass Sie alle Geräte ohne MAC-Adresse löschen wollen?<br>(Vielleicht bevorzugenn Sie eine Archivierung.)",
|
||||
"Maintenance_Tool_upgrade_database_noti":"Aktualisiere Datenbank",
|
||||
"Maintenance_Tool_upgrade_database_text":"Mit dieser Schaltfläche wird die Datenbank aktualisiert, um das Diagramm der Netzwerkaktivitäten der letzten 12 Stunden zu aktivieren. Bitte sichern Sie Ihre Datenbank, falls Probleme auftreten.",
|
||||
"Maintenance_Tool_upgrade_database_noti_text":"Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen.",
|
||||
"Maintenance_Tool_del_alldev":"Alle Geräte löschen",
|
||||
"Maintenance_Tool_del_alldev_text":"Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Geräte werden in der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_alldev_noti":"Geräte löschen",
|
||||
"Maintenance_Tool_del_alldev_noti_text":"Sind Sie sich sicher, dass Sie alle Geräte löschen wollen?",
|
||||
"Maintenance_Tool_del_unknowndev":"Löschen der (unknown) Geräte",
|
||||
"Maintenance_Tool_del_unknowndev_text":"Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Gräte mit dem Namen (unknown) werden aus der Datenbank ge­löscht.",
|
||||
"Maintenance_Tool_del_unknowndev_noti":"Lösche (unknown) Geräte",
|
||||
"Maintenance_Tool_del_unknowndev_noti_text":"Sind Sie sicher, dass Sie alle (unknown) Geräte aus der Datenbank löschen wollen?",
|
||||
"Maintenance_Tool_del_allevents":"Alle Ereignisse löschen",
|
||||
"Maintenance_Tool_del_allevents_text":"Machen Sie ein Backup, bevor Sie diese Funk­tion nutzen. Der Vor­gang kann ohne Back­up nicht rück­gängig gemacht werden. Alle Ereignisse werden aus der Datenbank ge­löscht. Dies setzt auch die Anwesenheit zu­rück. Es kann ab dem Moment zu ungültigen Sitzungen kommen. Ein Scan, während das betreffende Gerät online ist, sollte das Problem lösen.",
|
||||
"Maintenance_Tool_del_allevents_noti":"Alle Ereignisse löschen",
|
||||
"Maintenance_Tool_del_allevents_noti_text":"Sind Sie sicher, dass Sie alle Ereignisse aus der Datenbank löschen wollen. Dies setzt die Anwesenheit aller Geräte zurück.",
|
||||
"Maintenance_Tool_backup":"DB Sicherung",
|
||||
"Maintenance_Tool_backup_text":"Die Datenbank-Sicher­ungen befinden sich im Datenbank-Ver­zeich­nis, gepackt als zip-Archive, benannt mit dem Erstellungs­datum. Es gibt keine maximale Anzahl von Backups.",
|
||||
"Maintenance_Tool_backup_noti":"DB Sicherung",
|
||||
"Maintenance_Tool_backup_noti_text":"Sind Sie sicher, dass Sie die Datenbank jetzt sichern möchten. Prüfen Sie, dass gerade keine Scans stattfinden.",
|
||||
"Maintenance_Tool_restore":"DB Wiederherstellung",
|
||||
"Maintenance_Tool_restore_text":"Das neuste Backup kann über diese Funk­tion wiederhergestellt werden. Ältere Sicher­ungen müssen manuell wieder­hergestellt wer­den. Es empfiehlt sich eine Integritäts­prüfung nach der Wieder­her­stellung zu machen, falls die Datenbank bei der Sicherung geöffnet war.",
|
||||
"Maintenance_Tool_restore_noti":"DB Wiederherstellung",
|
||||
"Maintenance_Tool_restore_noti_text":"Sind Sie sicher, dass Sie die Datenbank aus der neusten Sicherung wiederherstellen möchten? Prüfen Sie, dass gerade keine Scans stattfinden.",
|
||||
"Maintenance_Tool_purgebackup":"Sicherungen aufräumen",
|
||||
"Maintenance_Tool_purgebackup_text":"Es werden, bis auf die letzten 3 Backups, alle übrigen Backups gelöscht.",
|
||||
"Maintenance_Tool_purgebackup_noti":"Sicherungen aufräumen",
|
||||
"Maintenance_Tool_purgebackup_noti_text":"Sind Sie sicher, alle Backups, bis auf die letzten 3 löschen möchten?",
|
||||
"Maintenance_Tool_del_ActHistory":"Löschen der Netzwerkaktivität",
|
||||
"Maintenance_Tool_del_ActHistory_text":"Der Graph für die Netzwerkaktivität wird zurückgesetzt. Hierbei werden die Events nicht beeinflusst.",
|
||||
"Maintenance_Tool_del_ActHistory_noti":"Netzwerkaktivität löschen",
|
||||
"Maintenance_Tool_del_ActHistory_noti_text":"Sind Sie sicher, dass Sie die Netzwerkaktivität zurücksetzen möchten?",
|
||||
"BackDevices_Arpscan_disabled":"Automatischer Arp-Scan deaktiviert.",
|
||||
"BackDevices_Arpscan_enabled":"Automatischer Arp-Scan aktiviert.",
|
||||
"BackDevices_darkmode_disabled":"Heller Modus aktiviert.",
|
||||
"BackDevices_darkmode_enabled":"Dunkler Modus aktiviert.",
|
||||
"BackDevices_Restore_CopError":"Die originale Datenbank konnte nicht kopiert werden.",
|
||||
"BackDevices_Restore_okay":"Die Wiederherstellung wurde erfolgreich ausgeführt.",
|
||||
"BackDevices_Restore_Failed":"Die Wiederherstellung ist fehlgeschlagen. Stellen Sie das Backup manuell her.",
|
||||
"BackDevices_Backup_CopError":"Die originale Datenbank konnte nicht gesichert werden.",
|
||||
"BackDevices_Backup_okay":"Das Backup wurde erfolgreich beendet.",
|
||||
"BackDevices_Backup_Failed":"Das Backup wurde teilweise ausgeführt. Das Archiv ist entweder leer oder nicht vorhanden.",
|
||||
"BackDevices_DBTools_DelDev_a":"Gerät erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelDev_b":"Geräte erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelEvents":"Events erfolgreich gelöscht.",
|
||||
"BackDevices_DBTools_DelEventsError":"Fehler beim Löschen der Ereignisse.",
|
||||
"BackDevices_DBTools_DelDevError_a":"Fehler beim Löschen des Gerätes.",
|
||||
"BackDevices_DBTools_DelDevError_b":"Fehler beim Löschen der Geräte.",
|
||||
"BackDevices_DBTools_UpdDev":"Gerät erfolgreich aktualisiert.",
|
||||
"BackDevices_DBTools_UpdDevError":"Fehler beim Aktualisieren des Gerätes.",
|
||||
"BackDevices_DBTools_Upgrade":"Datenbank erfolgreich aktualisiert.",
|
||||
"BackDevices_DBTools_UpgradeError":"Fehler beim Aktualisieren der Datenbank.",
|
||||
"BackDevices_DBTools_Purge":"Die ältesten Backups wurden gelöscht.",
|
||||
"BackDevices_DBTools_DelActHistory":"Die Anzeige der Netzwerkaktivität wurde zurückgesetzt.",
|
||||
"BackDevices_DBTools_DelActHistoryError":"Fehler beim Zurücksetzen der Netzwerkaktivitätsanzeige.",
|
||||
"Network_Title":"Netzwerkübersicht",
|
||||
"Network_ManageDevices":"Geräte verwalten",
|
||||
"Network_ManageAdd":"Gerät hinzufügen",
|
||||
"Network_ManageEdit":"Gerät bearbeiten",
|
||||
"Network_ManageDel":"Gerät löschen",
|
||||
"Network_ManageAdd_Name":"Name des Gerätes",
|
||||
"Network_ManageAdd_Name_text":"Name ohne Sonderzeichen",
|
||||
"Network_ManageAdd_Type":"Gerätetyp",
|
||||
"Network_ManageAdd_Type_text":"-- Typ wählen --",
|
||||
"Network_ManageAdd_Port":"Portanzahl",
|
||||
"Network_ManageAdd_Port_text":"bei WLAN oder Powerline leer lassen",
|
||||
"Network_ManageAdd_Submit":"Hinzufügen",
|
||||
"Network_ManageEdit_ID":"Gerät zum Bearbeiten auswählen",
|
||||
"Network_ManageEdit_ID_text":"-- Gerät wählen --",
|
||||
"Network_ManageEdit_Name":"Neuer Name",
|
||||
"Network_ManageEdit_Name_text":"Name ohne Sonderzeichen",
|
||||
"Network_ManageEdit_Type":"Neuer Typ",
|
||||
"Network_ManageEdit_Type_text":"-- Typ wählen --",
|
||||
"Network_ManageEdit_Port":"Neue Portanzahl",
|
||||
"Network_ManageEdit_Port_text":"bei WLAN oder Powerline leer lassen",
|
||||
"Network_ManageEdit_Submit":"Speichern",
|
||||
"Network_ManageDel_Name":"Gerät zum Löschen auswählen",
|
||||
"Network_ManageDel_Name_text":"-- Gerät wählen --",
|
||||
"Network_ManageDel_Submit":"Löschen",
|
||||
"Network_Table_State":"Status",
|
||||
"Network_Table_Hostname":"Gerätename",
|
||||
"Network_Table_IP":"IP",
|
||||
"HelpFAQ_Title":"Hilfe / FAQ",
|
||||
"HelpFAQ_Cat_General":"Allgemein",
|
||||
"HelpFAQ_Cat_Detail":"Detailansicht",
|
||||
"HelpFAQ_Cat_General_100_head":"Die Uhr oben rechts und die Zeiten der Events/Anwesenheit stimmen nicht (Zeitverschiebung).",
|
||||
"HelpFAQ_Cat_General_100_text_a":"Auf deinem PC ist für die PHP Umgebung folgende Zeitzone voreingestellt:",
|
||||
"HelpFAQ_Cat_General_100_text_b":"Sollte dies nicht die Zeitzone sein, in der du dich aufhältst, solltest du die Zeitzone in der PHP Konfigurationsdatei anpassen. Diese findest du in diesem Verzeichnis:",
|
||||
"HelpFAQ_Cat_General_100_text_c":"Suche in dieser Datei nach dem Eintrag 'date.timezone', entferne ggf. das führende ';' und trage die gewünschte Zeitzone ein. Eine Liste mit den unterstützten Zeitzonen findest du hier (<a href=\"https://www.php.net/manual/de/timezones.php\" target=\"blank\">Link</a>).",
|
||||
"HelpFAQ_Cat_General_101_head":"Mein Netzwerk scheint langsamer zu werden, Streaming ruckelt.",
|
||||
"HelpFAQ_Cat_General_101_text":"Es kann durchaus sein, das leistungsschwache Geräte mit der Art und Weise, wie Pi.Alert neue Geräte im Netzwerk erkennt, an ihre Leistungsgrenzen kommen. Dies verstärkt sich noch einmal, <br/> wenn diese Geräte per WLAN mit dem Netzwerk kommunizieren. Lösungen wären hier, wenn möglich ein Wechsel auf eine Kabelverbindung oder, falls das Geräte nur einen begrenzten Zeitraum genutzt <br/> werden soll, den arp-Scan auf der Wartungsseite zu pausieren.",
|
||||
"HelpFAQ_Cat_General_102_head":"Ich bekomme die Meldung, dass die Datenbank schreibgeschützt (read only) ist.",
|
||||
"HelpFAQ_Cat_General_102_text":"Prüfe im Pi.Alert verzeichnis ob der Ordner der Datenbank (db) die richtigen Rechte zugewiesen bekommen hat:<br> <span class=\"text-danger help_faq_code\">drwxrwx--- 2 (dein Username) www-data</span><br> Sollte die Berechtigung nicht stimmen, kannst du sie mit folgenden Befehlen im Terminal oder der Konsole wieder setzen:<br> <span class=\"text-danger help_faq_code\"> sudo chgrp -R www-data ~/pialert/db<br> chmod -R 770 ~/pialert/db </span><br> Wenn die Datenbank danach noch immer schreibgeschützt ist, versuche eine erneute Installation, oder das Zuückspielen eines Datenbank-Backups über die Wartungsseite.",
|
||||
"HelpFAQ_Cat_General_102docker_head":"(🐳 Docker only) Database issues (AJAX errors, read-only, not found)",
|
||||
"HelpFAQ_Cat_General_102docker_text":"Double-check you have followed the <a href=\"https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles\">dockerfile readme (most up-to-date info)</a>. <br/> <br/> <ul data-sourcepos=\"49:4-52:146\" dir=\"auto\"> <li data-sourcepos=\"49:4-49:106\">Download the <a href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/db/pialert.db\">original DB from GitHub</a>.</li> <li data-sourcepos=\"50:4-50:195\">Map the <code>pialert.db</code> file (<g-emoji class=\"g-emoji\" alias=\"warning\" fallback-src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\">⚠</g-emoji> not folder) from above to <code>/home/pi/pialert/db/pialert.db</code> (see <a href=\"https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles#-examples\">Examples</a> for details).</li><li data-sourcepos=\"51:4-51:161\">If facing issues (AJAX errors, can not write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under <code>/home/pi/pialert/front/log</code>.</li> <li data-sourcepos=\"52:4-52:146\">To solve permission issues you can also try to create a DB backup and then run a DB Restore via the <strong>Maintenance > Backup/Restore</strong> section.</li> <li data-sourcepos=\"53:4-53:228\">If the database is in read-only mode you can solve this by setting the owner and group by executing the following command on the host system: <code>docker exec pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db</code>.</li></ul>",
|
||||
"HelpFAQ_Cat_General_103_head":"Die Login-Seite erscheint nicht, auch nicht nach der Passwortänderung.",
|
||||
"HelpFAQ_Cat_General_103_text":"Neben dem Passwort, muss in der Konfigurationsdatei <span class=\"text-danger help_faq_code\">~/pialert/config/pialert.conf</span> auch der Parameter <span class=\"text-danger help_faq_code\">PIALERT_WEB_PROTECTION</span> auf <span class=\"text-danger help_faq_code\">True</span> gesetzt sein.",
|
||||
"HelpFAQ_Cat_Device_200_head":"Ich habe, mir nicht bekannte, Geräte in meiner Liste. Nach dem Löschen tauchen diese immer wieder auf.",
|
||||
"HelpFAQ_Cat_Device_200_text":"Wenn du Pi-hole verwendest, beachte bitte, dass Pi.Alert Informationen von Pi-hole abruft. Pausiere Pi.Alert, gehe in Pi-hole auf die Settings-Seite und lösche ggf. die betreffende DHCP-Lease. Anschließend schaue, ebenfalls in Pi-hole, unter Tools -> Network, ob sich dort die immer wiederkehrenden Hosts finden lassen. Wenn ja, lösche diese dort ebenfalls. Nun kannst du Pi.Alert wieder starten. Jetzt sollte das Gerät/die Geräte nicht mehr auftauchen.",
|
||||
"HelpFAQ_Cat_Detail_300_head":"Was bedeutet ",
|
||||
"HelpFAQ_Cat_Detail_300_text_a":"meint ein Netzwerkgerät (welches den typ AP, Gateway, Firewall, Hypervisor, Powerline, Switch, WLAN, PLC, Router,USB LAN Adapter, USB WIFI Adapter, or Internet eingestellt hat)",
|
||||
"HelpFAQ_Cat_Detail_300_text_b":"bezeichnet die Anschlussnummer/Portnummer, an der das gerade bearbeitete Gerät mit diesem Netzwerkgerät verbunden ist.",
|
||||
"HelpFAQ_Cat_Detail_301_head_a":"Wann wird nun gescannt? Bei ",
|
||||
"HelpFAQ_Cat_Detail_301_head_b":" steht 1min aber der Graph zeigt 5min - Abstände an.",
|
||||
"HelpFAQ_Cat_Detail_301_text":"Den zeitlichen Abstand zwischen den Scans legt der \"Cronjob\" fest, welcher standardmäßig auf 5min eingestellt ist. Die Benennung \"1min\" bezieht sich auf die zu erwartende Dauer des Scans. Abhängig vor der Netzwerkkonfiguration kann diese Zeitangabe variieren. Um den Cronjob zu bearbeiten, kannst du im Terminal/der Konsole <span class=\"text-danger help_faq_code\">crontab -e</span> eingeben und den Intervall ändern.",
|
||||
"HelpFAQ_Cat_Detail_302_head_a":"Was bedeutet ",
|
||||
"HelpFAQ_Cat_Detail_302_head_b":" und warum kann ich das nicht auswählen?",
|
||||
"HelpFAQ_Cat_Detail_302_text":"Einige moderne Geräte generieren aus Datenschutzgründen zufällige MAC-Adressen, die keinem Hersteller mehr zugeordnet werden können und welche sich mit jeder neuen Verbindung wieder ändern. Pi.Alert erkennt, ob es sich um eine solche zufällige MAC-Adresse handelt und aktiviert diese \"Feld\" automatisch. Um das Verhalten abzustellen, muss du in deinem Endgerät schauen, wie du die MAC-Adressen-Generierung deaktivierst.",
|
||||
"HelpFAQ_Cat_Detail_303_head":"Was ist Nmap und wozu dient es?",
|
||||
"HelpFAQ_Cat_Detail_303_text":"Nmap ist ein Netzwerkscanner mit vielfältigen Möglichkeiten.<br> Wenn ein neues Gerät in deiner Liste auftaucht, hast du die Möglichkeit über den Nmap-Scan genauere Informationen über das Gerät zu erhalten.",
|
||||
"HelpFAQ_Cat_Presence_400_head":"Geräte werden mit einer gelben Markierung und dem Hinweis \"missing Event\" angezeigt.",
|
||||
"HelpFAQ_Cat_Presence_400_text":"Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis Pi.Alert mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte Pi.Alert mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
||||
"HelpFAQ_Cat_Presence_401_head":"Ein Gerät wird als Anwesend angezeigt, obwohl es \"Offline\" ist.",
|
||||
"HelpFAQ_Cat_Presence_401_text":"Wenn dies geschieht hast du die Möglickeit, bei dem betreffenden Gerät (Detailsansicht) die Events zu löschen. Eine andere Möglichkeit wäre, das Gerät einzuschalten und zu warten, bis Pi.Alert mit dem nächsten Scan das Gerät als \"Online\" erkennt und anschließend das Gerät einfach wieder ausschalten. Nun sollte Pi.Alert mit dem nächsten Scan den Zustand des Gerätes ordentlich in der Datenbank vermerken.",
|
||||
"HelpFAQ_Cat_Network_600_head":"Was bringt mir diese Seite?",
|
||||
"HelpFAQ_Cat_Network_600_text":"Diese Seite soll dir die Möglichkeit bieten, die Belegung deiner Netzwerkgeräte abzubilden. Dazu kannst du einen oder mehrere Switches, WLANs, Router, etc. erstellen, sie ggf. mit einer Portanzahl versehen und bereits erkannte Geräte diesen zuordnen. Diese Zuordnung erfolgt in der Detailansicht, des zuzuordnenden Gerätes. So ist es dir möglich, schnell festzustellen an welchem Port ein Host angeschlossen und ob er online ist.",
|
||||
"REPORT_TITLE":"Bericht",
|
||||
"REPORT_ERROR":"Die gesuchte Seite ist vorübergehend nicht verfügbar. Bitte versuchen Sie es nach ein paar Sekunden erneut",
|
||||
"SYSTEM_TITLE":"Systeminformationen",
|
||||
"Plugins_Out_of":"von",
|
||||
"Speedtest_Results":"Ergebnisse des Geschwindigkeitstests",
|
||||
"Systeminfo_General":"Allgemein",
|
||||
"Systeminfo_General_Full_Date":"Vollständiges Datum:",
|
||||
"Systeminfo_General_Date":"Datum:",
|
||||
"Systeminfo_General_Date2":"Datum2:",
|
||||
"Systeminfo_General_TimeZone":"Zeitzone:",
|
||||
"Systeminfo_This_Client":"Dieser Mandant",
|
||||
"Systeminfo_Client_User_Agent":"Benutzeragent:",
|
||||
"Systeminfo_Client_Resolution":"Browserauflösung:",
|
||||
"Systeminfo_CPU":"CPU",
|
||||
"Systeminfo_CPU_Vendor":"CPU-Anbieter:",
|
||||
"Systeminfo_CPU_Name":"CPU-Name:",
|
||||
"Systeminfo_CPU_Cores":"CPU-Kerne:",
|
||||
"Systeminfo_CPU_Speed":"CPU-Geschwindigkeit:",
|
||||
"Systeminfo_CPU_Temp":"CPU-Temp:",
|
||||
"Systeminfo_Memory":"Speicher",
|
||||
"Systeminfo_Memory_Usage":"Speichernutzung:",
|
||||
"Systeminfo_Memory_Usage_Percent":"Speicher %:",
|
||||
"Systeminfo_Memory_Total_Memory":"Gesamtspeicher:",
|
||||
"Systeminfo_Motherboard":"Hauptplatine",
|
||||
"Systeminfo_Motherboard_BIOS":"BIOS:",
|
||||
"Systeminfo_Motherboard_BIOS_Date":"BIOS-Datum:",
|
||||
"Systeminfo_Motherboard_BIOS_Vendor":"BIOS-Anbieter:",
|
||||
"Systeminfo_Motherboard_Manufactured":"Hergestellt von:",
|
||||
"Systeminfo_Motherboard_Name":"Name:",
|
||||
"Systeminfo_Motherboard_Revision":"Revision:",
|
||||
"Systeminfo_Storage":"Lagerung",
|
||||
"Systeminfo_Storage_Mount":"Mountpunkt:",
|
||||
"Systeminfo_Storage_Device":"Gerät:",
|
||||
"Systeminfo_Storage_Size":"Größe:",
|
||||
"Systeminfo_Storage_Type":"Typ:",
|
||||
"Systeminfo_Storage_Usage":"Speicherverwendung",
|
||||
"Systeminfo_Storage_Usage_Mount":"Mountpunkt:",
|
||||
"Systeminfo_Storage_Usage_Total":"Gesamt:",
|
||||
"Systeminfo_Storage_Usage_Used":"Verwendet:",
|
||||
"Systeminfo_Storage_Usage_Free":"Kostenlos:",
|
||||
"Systeminfo_Network":"Netzwerk",
|
||||
"Systeminfo_Network_Accept_Encoding":"Kodierung akzeptieren:",
|
||||
"Systeminfo_Network_Accept_Language":"Sprache akzeptieren:",
|
||||
"Systeminfo_Network_Connection_Port":"Verbindungsport:",
|
||||
"Systeminfo_Network_HTTP_Host":"HTTP-Host:",
|
||||
"Systeminfo_Network_HTTP_Referer":"HTTP-Referer:",
|
||||
"Systeminfo_Network_HTTP_Referer_String":"Kein HTTP-Referer",
|
||||
"Systeminfo_Network_IP":"IP Internet:",
|
||||
"Systeminfo_Network_IP_Connection":"IP-Verbindung:",
|
||||
"Systeminfo_Network_IP_Server":"Server-IP:",
|
||||
"Systeminfo_Network_MIME":"MIME:",
|
||||
"Systeminfo_Network_Request_Method":"Anfragemethode:",
|
||||
"Systeminfo_Network_Request_URI":"URI anfordern:",
|
||||
"Systeminfo_Network_Request_Time":"Anfragezeit:",
|
||||
"Systeminfo_Network_Secure_Connection":"Sichere Verbindung:",
|
||||
"Systeminfo_Network_Secure_Connection_String":"Nein (HTTP)",
|
||||
"Systeminfo_Network_Server_Name":"Servername:",
|
||||
"Systeminfo_Network_Server_Name_String":"Servername nicht gefunden",
|
||||
"Systeminfo_Network_Server_Query":"Serverabfrage:",
|
||||
"Systeminfo_Network_Server_Query_String":"Keine Abfragezeichenfolge",
|
||||
"Systeminfo_Network_Server_Version":"Serverversion:",
|
||||
"Systeminfo_Network_Hardware":"Netzwerk Hardware",
|
||||
"Systeminfo_Services":"Dienste",
|
||||
"Systeminfo_Services_Name":"Dienstname",
|
||||
"Systeminfo_Services_Description":"Dienstbeschreibung",
|
||||
"Systeminfo_System":"System",
|
||||
"Systeminfo_System_Architecture":"Architektur:",
|
||||
"Systeminfo_System_AVG":"AVG laden:",
|
||||
"Systeminfo_System_Kernel":"Kernel:",
|
||||
"Systeminfo_System_OSVersion":"Betriebssystem:",
|
||||
"Systeminfo_System_Running_Processes":"Laufende Prozesse:",
|
||||
"Systeminfo_System_System":"System:",
|
||||
"Systeminfo_System_Uname":"Uname:",
|
||||
"Systeminfo_System_Uptime":"Betriebszeit:",
|
||||
"Systeminfo_USB_Devices":"USB-Geräte"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
"Navigation_SystemInfo" : "System info",
|
||||
"Navigation_Flows" : "Flows",
|
||||
"Navigation_HelpFAQ" : "Help / FAQ",
|
||||
"Navigation_Donations" : "Donations",
|
||||
"Device_Title" : "Devices",
|
||||
"Device_Shortcut_AllDevices" : "All Devices",
|
||||
"Device_Shortcut_Connected" : "Connected",
|
||||
@@ -458,7 +459,7 @@
|
||||
"Settings_Metadata_Toggle" : "Show/hide metadata for the given setting.",
|
||||
"settings_missing" : "Not all settings loaded, refresh the page! This is probably caused by a high load on the database.",
|
||||
"settings_missing_block" : "You can not save your settings without specifying all setting keys. Refresh the page. This is probably caused by a high load on the database.",
|
||||
"settings_old" : "The settings in the DB (shown on this page) are outdated. This is probably caused by a running scan. The settings were saved in the <code>pialert.conf</code> file, but the background process didn not have time to import it yet to the DB. You can wait until the settings get refreshed so you do not overwrite your old values. Feel free to save your settings either way if you don not mind losing the settings between the last save and now. There are also backup files created if you need to compare your settings later.",
|
||||
"settings_old" : "The settings in the DB (shown on this page) are outdated. This is probably caused by a running scan. The settings were saved in the <code>pialert.conf</code> file, but the background process didn not have time to import it yet to the DB. You can wait until the settings get refreshed so you do not overwrite your old values. Feel free to save your settings either way if you do not mind losing the settings between the last save and now. There are also backup files created if you need to compare your settings later.",
|
||||
"settings_imported" : "Last time settings were imported from the pialert.conf file:",
|
||||
"settings_expand_all" : "Expand all",
|
||||
"Setting_Override" : "Override value",
|
||||
@@ -479,7 +480,7 @@
|
||||
"PIALERT_WEB_PASSWORD_name" : "Login password",
|
||||
"PIALERT_WEB_PASSWORD_description" : "The default password is <code>123456</code>. To change the password run <code>/home/pi/pialert/back/pialert-cli</code> in the container or use the <a onclick=\"toggleAllSettings()\" href=\"#SETPWD_RUN\"><code>SETPWD_RUN</code> Set password plugin</a>.",
|
||||
"INCLUDED_SECTIONS_name" : "Notify on",
|
||||
"INCLUDED_SECTIONS_description" : "Specifies which events trigger notifications. Remove the event type(s) you don not want to get notified on. This setting overrides device-specific settings in the UI. (<code>CTRL + Click</code> to select/deselect).",
|
||||
"INCLUDED_SECTIONS_description" : "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. (<code>CTRL + Click</code> to select/deselect).",
|
||||
"DAYS_TO_KEEP_EVENTS_name" : "Delete events older than",
|
||||
"DAYS_TO_KEEP_EVENTS_description" : "This is a maintenance setting. This specifies the number of days worth of event entries that will be kept. All older events will be deleted periodically. Also applies on Plugin Events History.",
|
||||
"HRS_TO_KEEP_NEWDEV_name" : "Keep new devices for",
|
||||
@@ -499,14 +500,14 @@
|
||||
"SMTP_SERVER_name" : "SMTP server URL",
|
||||
"SMTP_SERVER_description" : "The SMTP server host URL. For example <code>smtp-relay.sendinblue.com</code>. To use Gmail as an SMTP server <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/SMTP_GMAIL.md\">follow this guide</a>",
|
||||
"SMTP_PORT_name" : "SMTP server PORT",
|
||||
"SMTP_PORT_description" : "Port number used for the SMTP connection. Set to <code>0</code> if you don not want to use a port when connecting to the SMTP server.",
|
||||
"SMTP_PORT_description" : "Port number used for the SMTP connection. Set to <code>0</code> if you do not want to use a port when connecting to the SMTP server.",
|
||||
"SMTP_SKIP_LOGIN_name" : "Skip authentication",
|
||||
"SMTP_SKIP_LOGIN_description" : "Don not use authentication when connecting to the SMTP server.",
|
||||
"SMTP_SKIP_LOGIN_description" : "Do not use authentication when connecting to the SMTP server.",
|
||||
"SMTP_USER_name" : "SMTP user",
|
||||
"SMTP_USER_description" : "The user name used to login into the SMTP server (sometimes a full email address).",
|
||||
"SMTP_PASS_name" : "SMTP password",
|
||||
"SMTP_PASS_description" : "The SMTP server password. ",
|
||||
"SMTP_SKIP_TLS_name" : "Don not use TLS",
|
||||
"SMTP_SKIP_TLS_name" : "Do not use TLS",
|
||||
"SMTP_SKIP_TLS_description" : "Disable TLS when connecting to your SMTP server.",
|
||||
"SMTP_FORCE_SSL_name" : "Force SSL",
|
||||
"SMTP_FORCE_SSL_description" : "Force SSL when connecting to your SMTP server.",
|
||||
@@ -532,7 +533,7 @@
|
||||
"REPORT_APPRISE_name" : "Enable Apprise",
|
||||
"REPORT_APPRISE_description" : "Enable sending notifications via <a target=\"_blank\" href=\"https://hub.docker.com/r/caronc/apprise\">Apprise</a>.",
|
||||
"APPRISE_HOST_name" : "Apprise host URL",
|
||||
"APPRISE_HOST_description" : "Apprise host URL starting with <code>http://</code> or <code>https://</code>. (don not forget to include <code>/notify</code> at the end)",
|
||||
"APPRISE_HOST_description" : "Apprise host URL starting with <code>http://</code> or <code>https://</code>. (do not forget to include <code>/notify</code> at the end)",
|
||||
"APPRISE_URL_name" : "Apprise notification URL",
|
||||
"APPRISE_URL_description" : "Apprise notification target URL. For example for Telegram it would be <code>tgram://{bot_token}/{chat_id}</code>.",
|
||||
"APPRISE_SIZE_name" : "Max payload size",
|
||||
@@ -564,7 +565,7 @@
|
||||
"REPORT_MQTT_name" : "Enable MQTT",
|
||||
"REPORT_MQTT_description" : "Enable sending notifications via <a target=\"_blank\" href=\"https://www.home-assistant.io/integrations/mqtt/\">MQTT</a> to your Home Assistance instance.",
|
||||
"MQTT_BROKER_name" : "MQTT broker URL",
|
||||
"MQTT_BROKER_description" : "MQTT host URL (don not include <code>http://</code> or <code>https://</code>).",
|
||||
"MQTT_BROKER_description" : "MQTT host URL (do not include <code>http://</code> or <code>https://</code>).",
|
||||
"MQTT_PORT_name" : "MQTT broker port",
|
||||
"MQTT_PORT_description" : "Port number where the broker is listening. Usually <code>1883</code>.",
|
||||
"MQTT_USER_name" : "MQTT user",
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
## 📚 Docs for individual plugins
|
||||
|
||||
### 🏴 Community translations of this file
|
||||
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README_ES.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/es.svg" alt="README_ES.md" style="height: 20px !important;width: 20px !important;"> Spanish (Spain)
|
||||
</a>
|
||||
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README_DE.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/de.svg" alt="README_DE.md" style="height: 20px !important;width: 20px !important;"> German (Germany)
|
||||
</a>
|
||||
|
||||
### 🔌 Plugins & 📚 Docs
|
||||
|
||||
| Required | CurrentScan | Unique Prefix | Plugin Type | Link + Docs |
|
||||
@@ -703,12 +715,6 @@ The UI will adjust how columns are displayed in the UI based on the resolvers de
|
||||
}
|
||||
```
|
||||
|
||||
### Community translations of this file
|
||||
|
||||
- [Spanish](https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README_ES.md)
|
||||
|
||||
|
||||
|
||||
[screen1]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins.png "Screen 1"
|
||||
[screen2]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_settings.png "Screen 2"
|
||||
[screen3]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_json_settings.png "Screen 3"
|
||||
|
||||
722
front/plugins/README_DE.md
Executable file
722
front/plugins/README_DE.md
Executable file
@@ -0,0 +1,722 @@
|
||||
## 📚 Dokumente für einzelne Plugins
|
||||
|
||||
### 🏴 Community-Übersetzungen dieser Datei
|
||||
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/us.svg" alt="README.md" style="height: 20px !important;width: 20px !important;"> English (American)
|
||||
</a>
|
||||
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README_ES.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/es.svg" alt="README_ES.md" style="height: 20px !important;width: 20px !important;"> Spanish (Spain)
|
||||
</a>
|
||||
|
||||
### 🔌 Plugins und 📚 Dokumente
|
||||
|
||||
| Required | CurrentScan | Unique Prefix | Plugin Type | Link + Docs |
|
||||
|-------------|-------------|-----------------------|------------------------|----------------------------------------------------------|
|
||||
| | Yes | ARPSCAN | Script | [arp_scan](/front/plugins/arp_scan/) |
|
||||
| | | CSVBCKP | Script | [csv_backup](/front/plugins/csv_backup/) |
|
||||
| | Yes | DHCPLSS | Script | [dhcp_leases](/front/plugins/dhcp_leases/) |
|
||||
| | | DHCPSRVS | Script | [dhcp_servers](/front/plugins/dhcp_servers/) |
|
||||
| Yes | | NEWDEV | Template | [newdev_template](/front/plugins/newdev_template/) |
|
||||
| | | NMAP | Script | [nmap_scan](/front/plugins/nmap_scan/) |
|
||||
| | Yes | PIHOLE | External SQLite DB | [pihole_scan](/front/plugins/pihole_scan/) |
|
||||
| | | SETPWD | Script | [set_password](/front/plugins/set_password/) |
|
||||
| | | SNMPDSC | Script | [snmp_discovery](/front/plugins/snmp_discovery/) |
|
||||
| | Yes* | UNDIS | Script | [undiscoverables](/front/plugins/undiscoverables/) |
|
||||
| | Yes | UNFIMP | Script | [unifi_import](/front/plugins/unifi_import/) |
|
||||
| | | WEBMON | Script | [website_monitor](/front/plugins/website_monitor/) |
|
||||
| N/A | | N/A | SQL query | No beispiel available, but the External SQLite based plugins work very similar |
|
||||
|
||||
>* Das Undiscoverables-Plugin (`UNDIS`) fügt nur vom Benutzer angegebene Dummy-Geräte ein.
|
||||
|
||||
> [!NOTE]
|
||||
> Sie können Plugins über die Einstellungen sanft deaktivieren oder Plugins vollständig ignorieren, indem Sie eine „ignore_plugin“-Datei im Plugin-Verzeichnis ablegen. Der Unterschied besteht darin, dass ignorierte Plugins nirgendwo in der Benutzeroberfläche angezeigt werden (Einstellungen, Gerätedetails, Plugins-Seiten). Die App überspringt ignorierte Plugins vollständig. Geräteerkennungs-Plugins fügen Werte in die Datenbanktabelle „CurrentScan“ ein. Die Plugins, die nicht erforderlich sind, können getrost ignoriert werden, es ist jedoch sinnvoll, zumindest einige Plugins zur Geräteerkennung (die Einträge in die Tabelle „CurrentScan“ einfügen) zu aktivieren, wie z. B. ARPSCAN oder PIHOLE.
|
||||
|
||||
> Es wird empfohlen, für alle Plugins, die für die Erkennung neuer Geräte zuständig sind, das gleiche Zeitplanintervall zu verwenden.
|
||||
|
||||
## 🌟 Erstellen Sie ein benutzerdefiniertes Plugin: Übersicht
|
||||
|
||||
| ![Screen 1][screen1] | ![Screen 2][screen2] | ![Screen 3][screen3] |
|
||||
|----------------------|----------------------| ----------------------|
|
||||
| ![Screen 4][screen4] | ![Screen 5][screen5] |
|
||||
|
||||
PiAlert verfügt über ein Plugin-System, um Ereignisse aus Skripten von Drittanbietern in die Benutzeroberfläche einzuspeisen und dann bei Bedarf Benachrichtigungen zu senden. Die hervorgehobene Kernfunktionalität, die dieses Plugin-System unterstützt, ist:
|
||||
|
||||
* dynamische Erstellung einer einfachen Benutzeroberfläche zur Interaktion mit den entdeckten Objekten,
|
||||
* Filterung der angezeigten Werte in der Geräte-Benutzeroberfläche
|
||||
* Oberflächeneinstellungen von Plugins in der Benutzeroberfläche,
|
||||
* verschiedene Spaltentypen für gemeldete Werte, z.B. Link zurück zu einem Gerät
|
||||
* Objekte in vorhandene PiAlert-Datenbanktabellen importieren
|
||||
|
||||
> (Derzeit wird das Aktualisieren/Überschreiben vorhandener Objekte nicht unterstützt.)
|
||||
|
||||
Beispielanwendungsfälle für Plugins könnten sein:
|
||||
|
||||
* Überwachen Sie einen Webdienst und benachrichtigen Sie mich, wenn er nicht verfügbar ist
|
||||
* Importieren Sie Geräte aus dhcp.leases-Dateien anstelle/ergänzend zur Verwendung von PiHole oder arp-scans
|
||||
* Erstellen von Ad-hoc-UI-Tabellen aus vorhandenen Daten in der PiAlert-Datenbank, z.B. um alle offenen Ports auf Geräten anzuzeigen, um Geräte aufzulisten, die in der letzten Stunde getrennt wurden usw.
|
||||
* Verwendung anderer Geräteerkennungsmethoden im Netzwerk und Importieren der Daten als neue Geräte
|
||||
* Erstellen eines Skripts zum Erstellen gefälschter Geräte basierend auf Benutzereingaben über benutzerdefinierte Einstellungen
|
||||
* ...an diesem Punkt liegt die Einschränkung hauptsächlich in der Kreativität und nicht in der Leistungsfähigkeit (es kann Randfälle geben und die Notwendigkeit, mehr Formularsteuerelemente für Benutzereingaben aus benutzerdefinierten Einstellungen zu unterstützen, aber Sie haben wahrscheinlich schon verstanden, worauf es ankommt)
|
||||
|
||||
Wenn Sie ein Plugin entwickeln möchten, prüfen Sie bitte die bestehende Plugin-Struktur. Sobald die Einstellungen vom Benutzer gespeichert wurden, müssen sie manuell aus der Datei `pialert.conf` entfernt werden, wenn Sie sie aus der `config.json` des Plugins neu initialisieren möchten.
|
||||
|
||||
Bitte lesen Sie das Folgende noch einmal sorgfältig durch, wenn Sie selbst mit einem Plugin beitragen möchten. Diese Dokumentationsdatei ist möglicherweise veraltet. Überprüfen Sie daher auch die Beispiel-Plugins noch einmal.
|
||||
|
||||
## ⚠ Haftungsausschluss
|
||||
|
||||
Befolgen Sie die nachstehenden Anweisungen sorgfältig und prüfen Sie Beispiel-Plugins, wenn Sie selbst eines schreiben möchten. Die Plugin-Benutzeroberfläche ist derzeit nicht meine Priorität. Gerne genehmige ich PRs, wenn Sie daran interessiert sind, die Benutzeroberfläche zu erweitern/verbessern (siehe [Frontend-Richtlinien](/docs/FRONTEND_DEVELOPMENT.md)). Beispielhafte Verbesserungen zum Mitnehmen:
|
||||
|
||||
* Die Tabellen sortierbar/filterbar machen
|
||||
* Verwenden des gleichen Ansatzes zum Anzeigen von Tabellendaten wie im Abschnitt "Geräte" (wird oben gelöst)
|
||||
* Hinzufügen unterstützter Formularsteuerelemente zum Anzeigen der Daten (Derzeit unterstützte Steuerelemente sind im Abschnitt "UI-Einstellungen in Datenbankspaltendefinitionen" unten aufgeführt)
|
||||
* ...
|
||||
|
||||
## ❗ Bekannte Probleme:
|
||||
|
||||
These issues will be hopefully fixed with time, so please don't report them. Instead, if you know how, feel free to investigate and submit a PR to fix the below. Keep the PRs small as it's easier to approve them:
|
||||
|
||||
* Vorhandene Plugin-Objekte werden manchmal nicht richtig interpretiert und stattdessen wird ein neues Objekt erstellt, was zu doppelten Einträgen führt. (Rennbedingung?)
|
||||
* Gelegentliches (zweimal aufgetretenes) Hängenbleiben der Verarbeitungs-Plugin-Skriptdatei.
|
||||
Die Benutzeroberfläche zeigt veraltete Werte an, bis die API-Endpunkte aktualisiert werden.
|
||||
|
||||
## Übersicht über die Plugin-Dateistruktur
|
||||
|
||||
> ⚠️Der Ordnername muss mit dem Codenamenwert in Folgendem übereinstimmen: `"code_name": "<value>"`
|
||||
> Das eindeutige Präfix muss im Vergleich zu den anderen Einstellungspräfixen eindeutig sein, z. B.: Das Präfix `APPRISE` wird bereits verwendet.
|
||||
|
||||
| File | Required (plugin type) | Description |
|
||||
|----------------------|----------------------|----------------------|
|
||||
| `config.json` | yes | Contains the plugin configuration (manifest) including the settings available to the user. |
|
||||
| `script.py` | no | The Python script itself. You may call any valid linux command. |
|
||||
| `last_result.log` | no | The file used to interface between PiAlert and the plugin. Required for a script plugin if you want to feed data into the app. |
|
||||
| `script.log` | no | Logging output (recommended) |
|
||||
| `README.md` | yes | Any setup considerations or overview |
|
||||
|
||||
Weitere Einzelheiten finden Sie weiter unten.
|
||||
|
||||
### Spaltenreihenfolge und Werte
|
||||
|
||||
| Order | Represented Column | Required | Description |
|
||||
|----------------------|----------------------|----------------------|----------------------|
|
||||
| 0 | `Object_PrimaryID` | yes | The primary ID used to group Events under. |
|
||||
| 1 | `Object_SecondaryID` | no | Optional secondary ID to create a relationship beween other entities, such as a MAC address |
|
||||
| 2 | `DateTime` | yes | When the event occured in the format `2023-01-02 15:56:30` |
|
||||
| 3 | `Watched_Value1` | yes | A value that is watched and users can receive notifications if it changed compared to the previously saved entry. For beispiel IP address |
|
||||
| 4 | `Watched_Value2` | no | As above |
|
||||
| 5 | `Watched_Value3` | no | As above |
|
||||
| 6 | `Watched_Value4` | no | As above |
|
||||
| 7 | `Extra` | no | Any other data you want to pass and display in PiAlert and the notifications |
|
||||
| 8 | `ForeignKey` | no | A foreign key that can be used to link to the parent object (usually a MAC address) |
|
||||
|
||||
> [!NOTE]
|
||||
> De-duplication is run once an hour on the `Plugins_Objects` database table and duplicate entries with the same value in columns `Object_PrimaryID`, `Object_SecondaryID`, `Plugin` (auto-filled based on `unique_prefix` of the plugin), `UserData` (can be populated with the `"type": "textbox_save"` column type) are removed.
|
||||
|
||||
# config.json structure
|
||||
|
||||
## Unterstützte Datenquellen
|
||||
|
||||
Currently, these data sources are supported (valid `data_source` value).
|
||||
|
||||
| Name | `data_source` value | Needs to return a "table" | Overview (more details on this page below) |
|
||||
|----------------------|----------------------|----------------------|----------------------|
|
||||
| Script | `script` | no | Executes any linux command in the `CMD` setting. |
|
||||
| Pialert DB query | `pialert-db-query` | yes | Executes a SQL query on the PiAlert database in the `CMD` setting. |
|
||||
| Template | `template` | no | Used to generate internal settings, such as default values. |
|
||||
| External SQLite DB query | `sqlite-db-query` | yes | Executes a SQL query from the `CMD` setting on an external SQLite database mapped in the `DB_PATH` setting. |
|
||||
|
||||
|
||||
> 🔎Beispiel
|
||||
>```json
|
||||
>"data_source": "pialert-db-query"
|
||||
>```
|
||||
If you want to display plugin objects or import devices into the app, data sources have to return a "table" of the exact structure as outlined above.
|
||||
|
||||
You can show or hide the UI on the "Plugins" page and "Plugins" tab for a plugin on devices via the `show_ui` property:
|
||||
|
||||
> 🔎Beispiel
|
||||
>```json
|
||||
> "show_ui": true,
|
||||
> ```
|
||||
|
||||
### "data_source": "script"
|
||||
|
||||
If the `data_source` is set to `script` the `CMD` setting (that you specify in the `settings` array section in the `config.json`) contains an executable Linux command, that usually generates a `last_result.log` file (not required if you don't import any data into the app). This file needs to be stored in the same folder as the plugin.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> A lot of the work is taken care of by the [`plugin_helper.py` library](/front/plugins/plugin_helper.py). You don't need to manage the `last_result.log` file if using the helper objects. Check other `script.py` of other plugins for details (The [Undicoverables plugins `script.py` file](/front/plugins/undiscoverables/script.py) is a good beispiel).
|
||||
|
||||
The content of the `last_result.log` file needs to contain the columns as defined in the "Column order and values" section above. The order of columns can't be changed. After every scan it should contain only the results from the latest scan/execution.
|
||||
|
||||
- The format of the `last_result.log` is a `csv`-like file with the pipe `|` as a separator.
|
||||
- 9 (nine) values need to be supplied, so every line needs to contain 8 pipe separators. Empty values are represented by `null`.
|
||||
- Don't render "headers" for these "columns".
|
||||
Every scan result/event entry needs to be on a new line.
|
||||
- You can find which "columns" need to be present, and if the value is required or optional, in the "Column order and values" section.
|
||||
- The order of these "columns" can't be changed.
|
||||
|
||||
#### 🔎 last_result.log beispieles
|
||||
|
||||
Valid CSV:
|
||||
|
||||
```csv
|
||||
|
||||
https://www.google.com|null|2023-01-02 15:56:30|200|0.7898|null|null|null|null
|
||||
https://www.duckduckgo.com|192.168.0.1|2023-01-02 15:56:30|200|0.9898|null|null|Best search engine|ff:ee:ff:11:ff:11
|
||||
|
||||
```
|
||||
|
||||
Invalid CSV with different errors on each line:
|
||||
|
||||
```csv
|
||||
|
||||
https://www.google.com|null|2023-01-02 15:56:30|200|0.7898||null|null|null
|
||||
https://www.duckduckgo.com|null|2023-01-02 15:56:30|200|0.9898|null|null|Best search engine|
|
||||
|https://www.duckduckgo.com|null|2023-01-02 15:56:30|200|0.9898|null|null|Best search engine|null
|
||||
null|192.168.1.1|2023-01-02 15:56:30|200|0.9898|null|null|Best search engine
|
||||
https://www.duckduckgo.com|192.168.1.1|2023-01-02 15:56:30|null|0.9898|null|null|Best search engine
|
||||
https://www.google.com|null|2023-01-02 15:56:30|200|0.7898|||
|
||||
https://www.google.com|null|2023-01-02 15:56:30|200|0.7898|
|
||||
|
||||
```
|
||||
|
||||
### "data_source": "pialert-db-query"
|
||||
|
||||
If the `data_source` is set to `pialert-db-query` the `CMD` setting needs to contain a SQL query rendering the columns as defined in the "Column order and values" section above. The order of columns is important.
|
||||
|
||||
This SQL query is executed on the `pialert.db` SQLite database file.
|
||||
|
||||
> 🔎Beispiel
|
||||
>
|
||||
> SQL query Beispiel:
|
||||
>
|
||||
> ```SQL
|
||||
> SELECT dv.dev_Name as Object_PrimaryID,
|
||||
> cast(dv.dev_LastIP as VARCHAR(100)) || ':' || cast( SUBSTR(ns.Port ,0, INSTR(ns.Port , '/')) as VARCHAR(100)) as Object_SecondaryID,
|
||||
> datetime() as DateTime,
|
||||
> ns.Service as Watched_Value1,
|
||||
> ns.State as Watched_Value2,
|
||||
> 'null' as Watched_Value3,
|
||||
> 'null' as Watched_Value4,
|
||||
> ns.Extra as Extra,
|
||||
> dv.dev_MAC as ForeignKey
|
||||
> FROM
|
||||
> (SELECT * FROM Nmap_Scan) ns
|
||||
> LEFT JOIN
|
||||
> (SELECT dev_Name, dev_MAC, dev_LastIP FROM Devices) dv
|
||||
> ON ns.MAC = dv.dev_MAC
|
||||
> ```
|
||||
>
|
||||
> Required `CMD` setting beispiel with above query (you can set `"type": "label"` if you want it to make uneditable in the UI):
|
||||
>
|
||||
> ```json
|
||||
> {
|
||||
> "function": "CMD",
|
||||
> "type": "text",
|
||||
> "default_value":"SELECT dv.dev_Name as Object_PrimaryID, cast(dv.dev_LastIP as VARCHAR(100)) || ':' || cast( SUBSTR(ns.Port ,0, INSTR(ns.Port , '/')) as VARCHAR(100)) as Object_SecondaryID, datetime() as DateTime, ns.Service as Watched_Value1, ns.State as Watched_Value2, 'null' as Watched_Value3, 'null' as Watched_Value4, ns.Extra as Extra FROM (SELECT * FROM Nmap_Scan) ns LEFT JOIN (SELECT dev_Name, dev_MAC, dev_LastIP FROM Devices) dv ON ns.MAC = dv.dev_MAC",
|
||||
> "options": [],
|
||||
> "localized": ["name", "description"],
|
||||
> "name" : [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "SQL to run"
|
||||
> }],
|
||||
> "description": [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "This SQL query is used to populate the coresponding UI tables under the Plugins section."
|
||||
> }]
|
||||
> }
|
||||
> ```
|
||||
|
||||
### "data_source": "template"
|
||||
|
||||
Used to initialize internal settings. Check the `newdev_template` plugin for details.
|
||||
|
||||
### "data_source": "sqlite-db-query"
|
||||
|
||||
You can execute a SQL query on an external database connected to the current PiALert database via a temporary `EXTERNAL_<unique prefix>.` prefix. For beispiel for `PIHOLE` (`"unique_prefix": "PIHOLE"`) it is `EXTERNAL_PIHOLE.`. The external SQLite database file has to be mapped in the container to the path specified in the `DB_PATH` setting:
|
||||
|
||||
> 🔎Beispiel
|
||||
>
|
||||
>```json
|
||||
> ...
|
||||
>{
|
||||
> "function": "DB_PATH",
|
||||
> "type": "readonly",
|
||||
> "default_value":"/etc/pihole/pihole-FTL.db",
|
||||
> "options": [],
|
||||
> "localized": ["name", "description"],
|
||||
> "name" : [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "DB Path"
|
||||
> }],
|
||||
> "description": [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "Required setting for the <code>sqlite-db-query</code> plugin type. Is used to mount an external SQLite database and execute the SQL query stored in the <code>CMD</code> setting."
|
||||
> }]
|
||||
> }
|
||||
> ...
|
||||
>```
|
||||
|
||||
The actual SQL query you want to execute is then stored as a `CMD` setting, similar to the `pialert-db-query` plugin type The format has to adhere to the format outlined in the "Column order and values" section above.
|
||||
|
||||
> 🔎Beispiel
|
||||
>
|
||||
> Notice the `EXTERNAL_PIHOLE.` prefix.
|
||||
>
|
||||
>```json
|
||||
>{
|
||||
> "function": "CMD",
|
||||
> "type": "text",
|
||||
> "default_value":"SELECT hwaddr as Object_PrimaryID, cast('http://' || (SELECT ip FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as VARCHAR(100)) || ':' || cast( SUBSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), 0, INSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), '/')) as VARCHAR(100)) as Object_SecondaryID, datetime() as DateTime, macVendor as Watched_Value1, lastQuery as Watched_Value2, (SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as Watched_Value3, 'null' as Watched_Value4, '' as Extra, hwaddr as ForeignKey FROM EXTERNAL_PIHOLE.network WHERE hwaddr NOT LIKE 'ip-%' AND hwaddr <> '00:00:00:00:00:00'; ",
|
||||
> "options": [],
|
||||
> "localized": ["name", "description"],
|
||||
> "name" : [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "SQL to run"
|
||||
> }],
|
||||
> "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."
|
||||
> }]
|
||||
> }
|
||||
> ```
|
||||
|
||||
## 🕳 Filter
|
||||
|
||||
Plugin-Einträge können in der Benutzeroberfläche basierend auf in Filterfeldern eingegebenen Werten gefiltert werden. Das Textfeld/Feld `txtMacFilter` enthält die Mac-Adresse des aktuell angezeigten Geräts oder einfach eine Mac-Adresse, die in der Abfragezeichenfolge `mac` verfügbar ist.
|
||||
|
||||
| Property | Required | Description |
|
||||
|----------------------|----------------------|----------------------|
|
||||
| `compare_column` | yes | Plugin column name that's value is used for comparison (**Left** side of the equation) |
|
||||
| `compare_operator` | yes | JavaScript comparison operator |
|
||||
| `compare_field_id` | yes | The `id` of a input text field containing a value is used for comparison (**Right** side of the equation)|
|
||||
| `compare_js_template` | yes | JavaScript code used to convert left and right side of the equation. `{value}` is replaced with input values. |
|
||||
| `compare_use_quotes` | yes | If `true` then the end result of the `compare_js_template` i swrapped in `"` quotes. Use to compare strings. |
|
||||
|
||||
Filters are only applied if a filter is specified and the `txtMacFilter` is not `undefined` or empty (`--`).
|
||||
|
||||
> 🔎Beispiel:
|
||||
>
|
||||
> ```json
|
||||
> "data_filters": [
|
||||
> {
|
||||
> "compare_column" : "Object_PrimaryID",
|
||||
> "compare_operator" : "==",
|
||||
> "compare_field_id": "txtMacFilter",
|
||||
> "compare_js_template": "'{value}'.toString()",
|
||||
> "compare_use_quotes": true
|
||||
> }
|
||||
> ],
|
||||
> ```
|
||||
>
|
||||
>1. On the `pluginsCore.php` page is an input field with the `txtMacFilter` id:
|
||||
>
|
||||
>```html
|
||||
><input class="form-control" id="txtMacFilter" type="text" value="--">
|
||||
>```
|
||||
>
|
||||
>2. This input field is initialized via the `&mac=` query string.
|
||||
>
|
||||
>3. The app then proceeds to use this Mac value from this field and compares it to the value of the `Object_PrimaryID` database field. The `compare_operator` is `==`.
|
||||
>
|
||||
>4. Both values, from the database field `Object_PrimaryID` and from the `txtMacFilter` are wrapped and evaluated with the `compare_js_template`, that is `'{value}.toString()'`.
|
||||
>
|
||||
>5. `compare_use_quotes` is set to `true` so `'{value}'.toString()` is wrappe dinto `"` quotes.
|
||||
>
|
||||
>6. Daraus ergibt sich beispielsweise dieser code:
|
||||
>
|
||||
>```javascript
|
||||
> // left part of teh expression coming from compare_column and right from the input field
|
||||
> // notice the added quotes ()") around the left and right part of teh expression
|
||||
> "eval('ac:82:ac:82:ac:82".toString()')" == "eval('ac:82:ac:82:ac:82".toString()')"
|
||||
>```
|
||||
>
|
||||
|
||||
|
||||
### 🗺 Zuordnung der Plugin-Ergebnisse zu einer Datenbanktabelle
|
||||
|
||||
Plugin results are always inserted into the standard `Plugin_Objects` database table. Optionally, PiAlert can take the results of the plugin execution and insert these results into an additional database table. This is enabled by with the property `"mapped_to_table"` in the `config.json` file. The mapping of the columns is defined in the `database_column_definitions` array.
|
||||
|
||||
> [!NOTE]
|
||||
> If results are mapped to the `CurrentScan` table, the data is then included into the regular scan loop, so for beispiel notification for devices are sent out.
|
||||
|
||||
|
||||
>🔍 Beispiel:
|
||||
>
|
||||
>For beispiel, this approach is used to implement the `DHCPLSS` plugin. The script parses all supplied "dhcp.leases" files, gets the results in the generic table format outlined in the "Column order and values" section above and takes individual values and inserts them into the `CurrentScan` database table in the PiAlert database. All this is achieved by:
|
||||
>
|
||||
>1. Specifying the database table into which the results are inserted by defining `"mapped_to_table": "CurrentScan"` in the root of the `config.json` file as shown below:
|
||||
>
|
||||
>```json
|
||||
>{
|
||||
> "code_name": "dhcp_leases",
|
||||
> "unique_prefix": "DHCPLSS",
|
||||
> ...
|
||||
> "data_source": "script",
|
||||
> "localized": ["display_name", "description", "icon"],
|
||||
> "mapped_to_table": "CurrentScan",
|
||||
> ...
|
||||
>}
|
||||
>```
|
||||
>2. Defining the target column with the `mapped_to_column` property for individual columns in the `database_column_definitions` array of the `config.json` file. For beispiel in the `DHCPLSS` plugin, I needed to map the value of the `Object_PrimaryID` column returned by the plugin, to the `cur_MAC` column in the PiAlert database `CurrentScan` table. Notice the `"mapped_to_column": "cur_MAC"` key-value pair in the sample below.
|
||||
>
|
||||
>```json
|
||||
>{
|
||||
> "column": "Object_PrimaryID",
|
||||
> "mapped_to_column": "cur_MAC",
|
||||
> "css_classes": "col-sm-2",
|
||||
> "show": true,
|
||||
> "type": "device_mac",
|
||||
> "default_value":"",
|
||||
> "options": [],
|
||||
> "localized": ["name"],
|
||||
> "name":[{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "MAC address"
|
||||
> }]
|
||||
> }
|
||||
>```
|
||||
>
|
||||
>3. That's it. PiAlert takes care of the rest. It loops thru the objects discovered by the plugin, takes the results line, by line and inserts them into the database table specified in `"mapped_to_table"`. The columns are translated from the generic plugin columns to the target table via the `"mapped_to_column"` property in the column definitions.
|
||||
|
||||
> [!NOTE]
|
||||
> You can create a column mapping with a default value via the `mapped_to_column_data` property. This means that the value of the given column will always be this value. Taht also menas that the `"column": "NameDoesntMatter"` is not important as there is no databse source column.
|
||||
|
||||
|
||||
>🔍 Beispiel:
|
||||
>
|
||||
>```json
|
||||
>{
|
||||
> "column": "NameDoesntMatter",
|
||||
> "mapped_to_column": "cur_ScanMethod",
|
||||
> "mapped_to_column_data": {
|
||||
> "value": "DHCPLSS"
|
||||
> },
|
||||
> "css_classes": "col-sm-2",
|
||||
> "show": true,
|
||||
> "type": "device_mac",
|
||||
> "default_value":"",
|
||||
> "options": [],
|
||||
> "localized": ["name"],
|
||||
> "name":[{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "MAC address"
|
||||
> }]
|
||||
> }
|
||||
>```
|
||||
|
||||
#### params
|
||||
|
||||
The `params` array in the `config.json` is used to enable the user to change the parameters of the executed script. For beispiel, the user wants to monitor a specific URL.
|
||||
|
||||
> 🔎 Beispiel:
|
||||
> Passing user-defined settings to a command. Let's say, you want to have a script, that is called with a user-defined parameter called `urls`:
|
||||
>
|
||||
> ```bash
|
||||
> root@server# python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com
|
||||
> ```
|
||||
|
||||
* You can allow the user to add URLs to a setting with the `function` property set to a custom name, such as `urls_to_check` (this is not a reserved name from the section "Supported settings `function` values" below).
|
||||
* You specify the parameter `urls` in the `params` section of the `config.json` the following way (`WEBMON_` is the plugin prefix automatically added to all the settings):
|
||||
```json
|
||||
{
|
||||
"params" : [
|
||||
{
|
||||
"name" : "urls",
|
||||
"type" : "setting",
|
||||
"value" : "WEBMON_urls_to_check"
|
||||
}]
|
||||
}
|
||||
```
|
||||
* Then you use this setting as an input parameter for your command in the `CMD` setting. Notice `urls={urls}` in the below json:
|
||||
|
||||
```json
|
||||
{
|
||||
"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"
|
||||
}],
|
||||
"description": [{
|
||||
"language_code":"en_us",
|
||||
"string" : "Command to run"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
During script execution, the app will take the command `"python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}"`, take the `{urls}` wildcard and replace it with the value from the `WEBMON_urls_to_check` setting. This is because:
|
||||
|
||||
1. The app checks the `params` entries
|
||||
2. It finds `"name" : "urls"`
|
||||
3. Checks the type of the `urls` params and finds `"type" : "setting"`
|
||||
4. Gets the setting name from `"value" : "WEBMON_urls_to_check"`
|
||||
- IMPORTANT: in the `config.json` this setting is identified by `"function":"urls_to_check"`, not `"function":"WEBMON_urls_to_check"`
|
||||
- You can also use a global setting, or a setting from a different plugin
|
||||
5. The app gets the user defined value from the setting with the code name `WEBMON_urls_to_check`
|
||||
- let's say the setting with the code name `WEBMON_urls_to_check` contains 2 values entered by the user:
|
||||
- `WEBMON_urls_to_check=['https://google.com','https://duck.com']`
|
||||
6. The app takes the value from `WEBMON_urls_to_check` and replaces the `{urls}` wildcard in the setting where `"function":"CMD"`, so you go from:
|
||||
- `python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}`
|
||||
- to
|
||||
- `python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com`
|
||||
|
||||
Below are some general additional notes, when defining `params`:
|
||||
|
||||
- `"name":"name_value"` - is used as a wildcard replacement in the `CMD` setting value by using curly brackets `{name_value}`. The wildcard is replaced by the result of the `"value" : "param_value"` and `"type":"type_value"` combo configuration below.
|
||||
- `"type":"<sql|setting>"` - is used to specify the type of the params, currently only 2 supported (`sql`,`setting`).
|
||||
- `"type":"sql"` - will execute the SQL query specified in the `value` property. The sql query needs to return only one column. The column is flattened and separated by commas (`,`), e.g: `SELECT dev_MAC from DEVICES` -> `Internet,74:ac:74:ac:74:ac,44:44:74:ac:74:ac`. This is then used to replace the wildcards in the `CMD` setting.
|
||||
- `"type":"setting"` - The setting code name. A combination of the value from `unique_prefix` + `_` + `function` value, or otherwise the code name you can find in the Settings page under the Setting display name, e.g. `PIHOLE_RUN`.
|
||||
- `"value": "param_value"` - Needs to contain a setting code name or SQL query without wildcards.
|
||||
- `"timeoutMultiplier" : true` - used to indicate if the value should multiply the max timeout for the whole script run by the number of values in the given parameter.
|
||||
- `"base64": true` - use base64 encoding to pass the value to the script (e.g. if there are spaces)
|
||||
|
||||
|
||||
> 🔎Beispiel:
|
||||
>
|
||||
> ```json
|
||||
> {
|
||||
> "params" : [{
|
||||
> "name" : "ips",
|
||||
> "type" : "sql",
|
||||
> "value" : "SELECT dev_LastIP from DEVICES",
|
||||
> "timeoutMultiplier" : true
|
||||
> },
|
||||
> {
|
||||
> "name" : "macs",
|
||||
> "type" : "sql",
|
||||
> "value" : "SELECT dev_MAC from DEVICES"
|
||||
> },
|
||||
> {
|
||||
> "name" : "timeout",
|
||||
> "type" : "setting",
|
||||
> "value" : "NMAP_RUN_TIMEOUT"
|
||||
> },
|
||||
> {
|
||||
> "name" : "args",
|
||||
> "type" : "setting",
|
||||
> "value" : "NMAP_ARGS",
|
||||
> "base64" : true
|
||||
> }]
|
||||
> }
|
||||
> ```
|
||||
|
||||
|
||||
#### ⚙ Objektstruktur festlegen
|
||||
|
||||
> [!NOTE]
|
||||
> Der Einstellungsablauf und wann Plugin-spezifische Einstellungen angewendet werden, wird im [Einstellungssystem](/docs/SETTINGS_SYSTEM.md) beschrieben.
|
||||
|
||||
Required attributes are:
|
||||
|
||||
| Property | Description |
|
||||
| -------- | ----------- |
|
||||
| `"function"` | Specifies the function the setting drives or a simple unique code name. See Supported settings function values for options. |
|
||||
| `"type"` | Specifies the form control used for the setting displayed in the Settings page and what values are accepted. Supported options include: |
|
||||
| | - `text` |
|
||||
| | - `integer` |
|
||||
| | - `boolean` |
|
||||
| | - `password` |
|
||||
| | - `readonly` |
|
||||
| | - `integer.select` |
|
||||
| | - `text.select` |
|
||||
| | - `text.multiselect` |
|
||||
| | - `list` |
|
||||
| | - `integer.checkbox` |
|
||||
| | - `text.template` |
|
||||
| `"localized"` | A list of properties on the current JSON level that need to be localized. |
|
||||
| `"name"` | Displayed on the Settings page. An array of localized strings. See Localized strings below. |
|
||||
| `"description"` | Displayed on the Settings page. An array of localized strings. See Localized strings below. |
|
||||
| (optional) `"events"` | Specifies whether to generate an execution button next to the input field of the setting. Supported values: |
|
||||
| | - `test` |
|
||||
| | - `run` |
|
||||
| (optional) `"override_value"` | Used to determine a user-defined override for the setting. Useful for template-based plugins, where you can choose to leave the current value or override it with the value defined in the setting. (Work in progress) |
|
||||
| (optional) `"events"` | Used to trigger the plugin. Usually used on the `RUN` setting. Not fully tested in all scenarios. Will show a play button next to the setting. After clicking, an event is generated for the backend in the `Parameters` database table to process the front-end event on the next run. |
|
||||
|
||||
|
||||
##### Unterstützte Einstellungen `function` werte
|
||||
|
||||
You can have any `"function": "my_custom_name"` custom name, however, the ones listed below have a specific functionality attached to them. If you use a custom name, then the setting is mostly used as an input parameter for the `params` section.
|
||||
|
||||
| Setting | Description |
|
||||
| ------- | ----------- |
|
||||
| `RUN` | (required) Specifies when the service is executed. |
|
||||
| | Supported Options: |
|
||||
| | - "disabled" - not run |
|
||||
| | - "once" - run on app start or on settings saved |
|
||||
| | - "schedule" - if included, then a `RUN_SCHD` setting needs to be specified to determine the schedule |
|
||||
| | - "always_after_scan" - run always after a scan is finished |
|
||||
| | - "on_new_device" - run when a new device is detected |
|
||||
| | - "before_config_save" - run before the config is marked as saved. Useful if your plugin needs to modify the `pialert.conf` file. |
|
||||
| `RUN_SCHD` | (required if you include the above `RUN` function) Cron-like scheduling is used if the `RUN` setting is set to `schedule`. |
|
||||
| `CMD` | (required) Specifies the command that should be executed. |
|
||||
| `API_SQL` | (optional) Generates a `table_` + `code_name` + `.json` file as per [API docs](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/API.md). |
|
||||
| `RUN_TIMEOUT` | (optional) Specifies the maximum execution time of the script. If not specified, a default value of 10 seconds is used to prevent hanging. |
|
||||
| `WATCH` | (optional) Specifies which database columns are watched for changes for this particular plugin. If not specified, no notifications are sent. |
|
||||
| `REPORT_ON` | (optional) Specifies when to send a notification. Supported options are: |
|
||||
| | - `new` means a new unique (unique combination of PrimaryId and SecondaryId) object was discovered. |
|
||||
| | - `watched-changed` - means that selected `Watched_ValueN` columns changed |
|
||||
| | - `watched-not-changed` - reports even on events where selected `Watched_ValueN` did not change |
|
||||
| | - `missing-in-last-scan` - if the object is missing compared to previous scans |
|
||||
|
||||
|
||||
|
||||
> 🔎 Beispiel:
|
||||
>
|
||||
> ```json
|
||||
> {
|
||||
> "function": "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"
|
||||
> }],
|
||||
> "description": [{
|
||||
> "language_code":"en_us",
|
||||
> "string" : "Enable a regular scan of your services. If you select <code>schedule</code> the scheduling settings from below are applied. If you select <code>once</code> the scan is run only once on start of the application (container) for the time specified in <a href=\"#WEBMON_RUN_TIMEOUT\"><code>WEBMON_RUN_TIMEOUT</code> setting</a>."
|
||||
> }]
|
||||
> }
|
||||
> ```
|
||||
|
||||
##### 🌍Lokalisierte Zeichenfolgen
|
||||
|
||||
- `"language_code":"<en_us|es_es|de_de>"` - code name of the language string. Only these three are currently supported. At least the `"language_code":"en_us"` variant has to be defined.
|
||||
- `"string"` - The string to be displayed in the given language.
|
||||
|
||||
> 🔎 Beispiel:
|
||||
>
|
||||
> ```json
|
||||
>
|
||||
> {
|
||||
> "language_code":"en_us",
|
||||
> "string" : "When to run"
|
||||
> }
|
||||
>
|
||||
> ```
|
||||
|
||||
##### UI-Einstellungen in database_column_definitions.
|
||||
|
||||
The UI will adjust how columns are displayed in the UI based on the resolvers definition of the `database_column_definitions` object. These are the supported form controls and related functionality:
|
||||
|
||||
- Only columns with `"show": true` and also with at least an English translation will be shown in the UI.
|
||||
|
||||
| Supported Types | Description |
|
||||
| -------------- | ----------- |
|
||||
| `label` | Displays a column only. |
|
||||
| `text` | Makes a column editable, and a save icon is displayed next to it. See below for information on `threshold`, `replace`. |
|
||||
| | |
|
||||
| `options` Property | Used in conjunction with types like `threshold`, `replace`, `regex`. |
|
||||
| `threshold` | The `options` array contains objects ordered from the lowest `maximum` to the highest. The corresponding `hexColor` is used for the value background color if it's less than the specified `maximum` but more than the previous one in the `options` array. |
|
||||
| `replace` | The `options` array contains objects with an `equals` property, which is compared to the "value." If the values are the same, the string in `replacement` is displayed in the UI instead of the actual "value". |
|
||||
| `regex` | Applies a regex to the value. The `options` array contains objects with an `type` (must be set to `regex`) and `param` (must contain the regex itself) property. |
|
||||
| | |
|
||||
| Type Definitions | |
|
||||
| `device_mac` | The value is considered to be a MAC address, and a link pointing to the device with the given MAC address is generated. |
|
||||
| `device_ip` | The value is considered to be an IP address. A link pointing to the device with the given IP is generated. The IP is checked against the last detected IP address and translated into a MAC address, which is then used for the link itself. |
|
||||
| `device_name_mac` | The value is considered to be a MAC address, and a link pointing to the device with the given IP is generated. The link label is resolved as the target device name. |
|
||||
| `url` | The value is considered to be a URL, so a link is generated. |
|
||||
| `textbox_save` | Generates an editable and saveable text box that saves values in the database. Primarily intended for the `UserData` database column in the `Plugins_Objects` table. |
|
||||
| `url_http_https` | Generates two links with the `https` and `http` prefix as lock icons. |
|
||||
|
||||
|
||||
> [!NOTE]
|
||||
> Unterstützt Verkettung. Sie können mehrere Resolver mit „.“ verketten. Zum Beispiel `regex.url_http_https`. Dadurch wird der Resolver `regex` und dann der Resolver `url_http_https` angewendet.
|
||||
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"column": "Watched_Value1",
|
||||
"css_classes": "col-sm-2",
|
||||
"show": true,
|
||||
"type": "threshold",
|
||||
"default_value":"",
|
||||
"options": [
|
||||
{
|
||||
"maximum": 199,
|
||||
"hexColor": "#792D86"
|
||||
},
|
||||
{
|
||||
"maximum": 299,
|
||||
"hexColor": "#5B862D"
|
||||
},
|
||||
{
|
||||
"maximum": 399,
|
||||
"hexColor": "#7D862D"
|
||||
},
|
||||
{
|
||||
"maximum": 499,
|
||||
"hexColor": "#BF6440"
|
||||
},
|
||||
{
|
||||
"maximum": 599,
|
||||
"hexColor": "#D33115"
|
||||
}
|
||||
],
|
||||
"localized": ["name"],
|
||||
"name":[{
|
||||
"language_code":"en_us",
|
||||
"string" : "Status code"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Status",
|
||||
"show": true,
|
||||
"type": "replace",
|
||||
"default_value":"",
|
||||
"options": [
|
||||
{
|
||||
"equals": "watched-not-changed",
|
||||
"replacement": "<i class='fa-solid fa-square-check'></i>"
|
||||
},
|
||||
{
|
||||
"equals": "watched-changed",
|
||||
"replacement": "<i class='fa-solid fa-triangle-exclamation'></i>"
|
||||
},
|
||||
{
|
||||
"equals": "new",
|
||||
"replacement": "<i class='fa-solid fa-circle-plus'></i>"
|
||||
}
|
||||
],
|
||||
"localized": ["name"],
|
||||
"name":[{
|
||||
"language_code":"en_us",
|
||||
"string" : "Status"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Watched_Value3",
|
||||
"css_classes": "col-sm-1",
|
||||
"show": true,
|
||||
"type": "regex.url_http_https",
|
||||
"default_value":"",
|
||||
"options": [
|
||||
{
|
||||
"type": "regex",
|
||||
"param": "([\\d.:]+)"
|
||||
}
|
||||
],
|
||||
"localized": ["name"],
|
||||
"name":[{
|
||||
"language_code":"en_us",
|
||||
"string" : "HTTP/s links"
|
||||
},
|
||||
{
|
||||
"language_code":"es_es",
|
||||
"string" : "N/A"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
[screen1]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins.png "Screen 1"
|
||||
[screen2]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_settings.png "Screen 2"
|
||||
[screen3]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_json_settings.png "Screen 3"
|
||||
[screen4]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_json_ui.png "Screen 4"
|
||||
[screen5]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_device_details.png "Screen 5"
|
||||
@@ -1,29 +1,39 @@
|
||||
## 📚 Documentos para plugins individuales
|
||||
|
||||
### Traducciones comunitarias de este archivo
|
||||
### 🏴 Traducciones comunitarias de este archivo
|
||||
|
||||
- [Ingles](https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README.md)
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/us.svg" alt="README.md" style="height: 20px !important;width: 20px !important;"> Ingles (Americano)
|
||||
</a>
|
||||
|
||||
### Plugins basados en scripts
|
||||
* <a href="https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/README_DE.md">
|
||||
<img src="https://github.com/lipis/flag-icons/blob/main/flags/4x3/de.svg" alt="README.md" style="height: 20px !important;width: 20px !important;"> Alemán (Alemania)
|
||||
</a>
|
||||
|
||||
- [arp_scan (ARPSCAN)](/front/plugins/arp_scan/)
|
||||
- [website_monitor (WEBMON)](/front/plugins/website_monitor/)
|
||||
- [dhcp_servers (DHCPSRVS)](/front/plugins/dhcp_servers/)
|
||||
- [dhcp_leases (DHCPLSS)](/front/plugins/dhcp_leases/)
|
||||
- [unifi_import (UNFIMP)](/front/plugins/unifi_import/)
|
||||
- [snmp_discovery (SNMPDSC)](/front/plugins/snmp_discovery/)
|
||||
- [undiscoverables (UNDIS)](/front/plugins/undiscoverables/)
|
||||
- [pholus_scan (ARPSCAN)](/front/plugins/pholus_scan/)
|
||||
- [set_password (SETPWD)](/front/plugins/set_password/)
|
||||
### 🔌 Plugins y 📚 Documentos
|
||||
|
||||
### Plugins basados en consultas SQL
|
||||
- [nmap_services (NMAPSERV)](/front/plugins/nmap_services/)
|
||||
| Requerido | CurrentScan | Prefijo único | Tipo de plugin | Enlace + Documentos |
|
||||
|-------------|-------------|-----------------------|------------------------|----------------------------------------------------------|
|
||||
| | Sí | ARPSCAN | Script | [arp_scan](/front/plugins/arp_scan/) |
|
||||
| | | CSVBCKP | Script | [csv_backup](/front/plugins/csv_backup/) |
|
||||
| | Sí | DHCPLSS | Script | [dhcp_leases](/front/plugins/dhcp_leases/) |
|
||||
| | | DHCPSRVS | Script | [dhcp_servers](/front/plugins/dhcp_servers/) |
|
||||
| Sí | | NEWDEV | Template | [newdev_template](/front/plugins/newdev_template/) |
|
||||
| | | NMAP | Script | [nmap_scan](/front/plugins/nmap_scan/) |
|
||||
| | Sí | PIHOLE | External SQLite DB | [pihole_scan](/front/plugins/pihole_scan/) |
|
||||
| | | SETPWD | Script | [set_password](/front/plugins/set_password/) |
|
||||
| | | SNMPDSC | Script | [snmp_discovery](/front/plugins/snmp_discovery/) |
|
||||
| | Sí* | UNDIS | Script | [undiscoverables](/front/plugins/undiscoverables/) |
|
||||
| | Sí | UNFIMP | Script | [unifi_import](/front/plugins/unifi_import/) |
|
||||
| | | WEBMON | Script | [website_monitor](/front/plugins/website_monitor/) |
|
||||
| N/A | | N/A | SQL query | No hay ningún ejemplo disponible, pero los complementos basados en SQLite externo funcionan de manera muy similar |
|
||||
|
||||
### Plugins basados en plantillas
|
||||
- [newdev_template (NEWDEV)](/front/plugins/newdev_template/)
|
||||
>* El complemento Undiscoverables (`UNDIS`) inserta solo dispositivos ficticios especificados por el usuario.
|
||||
|
||||
### Plugins externos basados en SQLite
|
||||
- [pihole_scan (PIHOLE)](/front/plugins/newdev_template/)
|
||||
> [!NOTE]
|
||||
> Puede desactivar los complementos a través de Configuración o ignorarlos por completo colocando un archivo `ignore_plugin` en el directorio de complementos. La diferencia es que los complementos ignorados no aparecen en ninguna parte de la interfaz de usuario (Configuración, Detalles del dispositivo, páginas de complementos). La aplicación omite por completo los complementos ignorados. Los complementos de detección de dispositivos insertan valores en la tabla de base de datos "CurrentScan". Es seguro ignorar los complementos que no son necesarios; sin embargo, tiene sentido tener habilitados al menos algunos complementos de detección de dispositivos (que insertan entradas en la tabla `CurrentScan`), como ARPSCAN o PIHOLE.
|
||||
|
||||
> Se recomienda utilizar el mismo intervalo de programación para todos los complementos responsables de descubrir nuevos dispositivos.
|
||||
|
||||
## 🌟 Crear un plugin personalizado: Descripción general
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import sys
|
||||
sys.path.append("/home/pi/pialert/front/plugins")
|
||||
sys.path.append('/home/pi/pialert/pialert')
|
||||
|
||||
from plugin_helper import Plugin_Object, Plugin_Objects
|
||||
from plugin_helper import Plugin_Object, Plugin_Objects, handleEmpty
|
||||
from logger import mylog
|
||||
from dhcp_leases import DhcpLeases
|
||||
|
||||
@@ -31,43 +31,42 @@ def main():
|
||||
|
||||
if values.paths:
|
||||
for path in values.paths.split('=')[1].split(','):
|
||||
plug_objects_tmp = get_entries(path, plugin_objects)
|
||||
mylog('verbose', [f'[DHCPLSS] {len(plug_objects_tmp)} Entries found in "{path}"'])
|
||||
plugin_objects = plugin_objects + plug_objects_tmp
|
||||
|
||||
plugin_objects = get_entries(path, plugin_objects)
|
||||
mylog('verbose', [f'[DHCPLSS] {len(plugin_objects)} Entries found in "{path}"'])
|
||||
|
||||
plugin_objects.write_result_file()
|
||||
|
||||
def get_entries(path, plugin_objects):
|
||||
if 'pihole' in path:
|
||||
data = []
|
||||
reporting = False
|
||||
with open(piholeDhcpleases, 'r') as f:
|
||||
|
||||
|
||||
with open(path, 'r') as f:
|
||||
for line in f:
|
||||
row = line.rstrip().split()
|
||||
if len(row) == 5:
|
||||
plugin_objects.add_object(
|
||||
primaryId=row[1],
|
||||
secondaryId=row[2],
|
||||
watched1='True',
|
||||
watched2=row[3],
|
||||
watched3=row[4],
|
||||
watched4='True',
|
||||
extra=path,
|
||||
foreignKey=row[1]
|
||||
primaryId = handleEmpty(row[1]),
|
||||
secondaryId = handleEmpty(row[2]),
|
||||
watched1 = handleEmpty('True'),
|
||||
watched2 = handleEmpty(row[3]),
|
||||
watched3 = handleEmpty(row[4]),
|
||||
watched4 = handleEmpty('True'),
|
||||
extra = handleEmpty(path),
|
||||
foreignKey = handleEmpty(row[1])
|
||||
)
|
||||
else:
|
||||
leases = DhcpLeases(path)
|
||||
leasesList = leases.get()
|
||||
for lease in leasesList:
|
||||
plugin_objects.add_object(
|
||||
primaryId=lease.ethernet,
|
||||
secondaryId=lease.ip,
|
||||
watched1=lease.active,
|
||||
watched2=lease.hostname,
|
||||
watched3=lease.hardware,
|
||||
watched4=lease.binding_state,
|
||||
extra=path,
|
||||
foreignKey=lease.ethernet
|
||||
primaryId = handleEmpty(lease.ethernet),
|
||||
secondaryId = handleEmpty(lease.ip),
|
||||
watched1 = handleEmpty(lease.active),
|
||||
watched2 = handleEmpty(lease.hostname),
|
||||
watched3 = handleEmpty(lease.hardware),
|
||||
watched4 = handleEmpty(lease.binding_state),
|
||||
extra = handleEmpty(path),
|
||||
foreignKey = handleEmpty(lease.ethernet)
|
||||
)
|
||||
return plugin_objects
|
||||
|
||||
|
||||
0
front/plugins/known_template/ignore_plugin
Normal file → Executable file
0
front/plugins/known_template/ignore_plugin
Normal file → Executable file
@@ -80,8 +80,8 @@
|
||||
},
|
||||
{
|
||||
"function": "CMD",
|
||||
"type": "readonly",
|
||||
"default_value":"SELECT hwaddr as Object_PrimaryID, cast('http://' || (SELECT ip FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as VARCHAR(100)) || ':' || cast( SUBSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), 0, INSTR((SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1), '/')) as VARCHAR(100)) as Object_SecondaryID, datetime() as DateTime, macVendor as Watched_Value1, lastQuery as Watched_Value2, (SELECT name FROM EXTERNAL_PIHOLE.network_addresses WHERE network_id = id ORDER BY lastseen DESC, ip LIMIT 1) as Watched_Value3, 'null' as Watched_Value4, '' as Extra, hwaddr as ForeignKey FROM EXTERNAL_PIHOLE.network WHERE hwaddr NOT LIKE 'ip-%' AND hwaddr <> '00:00:00:00:00:00'; ",
|
||||
"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 <> {s-quote}00:00:00:00:00:00{s-quote};",
|
||||
"options": [],
|
||||
"localized": ["name", "description"],
|
||||
"name" : [{
|
||||
@@ -219,6 +219,19 @@
|
||||
"string" : "MAC"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Object_SecondaryID",
|
||||
"css_classes": "col-sm-2",
|
||||
"show": false,
|
||||
"type": "label",
|
||||
"default_value":"",
|
||||
"options": [],
|
||||
"localized": ["name"],
|
||||
"name":[{
|
||||
"language_code":"en_us",
|
||||
"string" : "N/A"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Watched_Value1",
|
||||
"mapped_to_column": "cur_IP",
|
||||
@@ -265,6 +278,20 @@
|
||||
"string" : "Name"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Watched_Value4",
|
||||
"mapped_to_column": "cur_Vendor",
|
||||
"css_classes": "col-sm-2",
|
||||
"show": true,
|
||||
"type": "label",
|
||||
"default_value":"",
|
||||
"options": [],
|
||||
"localized": ["name"],
|
||||
"name":[{
|
||||
"language_code":"en_us",
|
||||
"string" : "Vendor"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"column": "Dummy",
|
||||
"mapped_to_column": "cur_ScanMethod",
|
||||
|
||||
@@ -33,6 +33,13 @@ pialertConfigFile = read_config_file()
|
||||
timeZoneSetting = pialertConfigFile['TIMEZONE']
|
||||
timeZone = pytz.timezone(timeZoneSetting)
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
def handleEmpty(input):
|
||||
if input == '' or None:
|
||||
return 'null'
|
||||
else:
|
||||
return input
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
def decodeBase64(inputParamBase64):
|
||||
|
||||
|
||||
@@ -577,7 +577,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
|
||||
{
|
||||
$.ajax({
|
||||
method: "POST",
|
||||
url: "../php/server/util.php",
|
||||
url: "php/server/util.php",
|
||||
data: {
|
||||
function: 'savesettings',
|
||||
settings: JSON.stringify(collectSettings()) },
|
||||
|
||||
@@ -230,8 +230,7 @@ def isNewVersion(newVersion: bool):
|
||||
|
||||
if realeaseTimestamp > buildTimestamp + 600:
|
||||
mylog('none', ["[Version check] New version of the container available!"])
|
||||
newVersion = True
|
||||
# updateState(db, 'Back_New_Version_Available', str(newVersionAvailable)) ## TO DO add this back in but avoid circular ref with database
|
||||
newVersion = True
|
||||
|
||||
return newVersion
|
||||
|
||||
|
||||
@@ -358,13 +358,14 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ):
|
||||
else:
|
||||
mylog('none', ['[Plugins] Skipped invalid sql result'])
|
||||
|
||||
|
||||
|
||||
# check if the subprocess / SQL query failed / there was no valid output
|
||||
if len(sqlParams) == 0:
|
||||
mylog('none', ['[Plugins] No output received from the plugin ', plugin["unique_prefix"], ' - enable LOG_LEVEL=debug and check logs'])
|
||||
return pluginsState
|
||||
else:
|
||||
mylog('verbose', ['[Plugins] SUCCESS, received ', len(sqlParams), ' entries'])
|
||||
mylog('debug', ['[Plugins] sqlParam entries: ', sqlParams])
|
||||
|
||||
# process results if any
|
||||
if len(sqlParams) > 0:
|
||||
|
||||
@@ -148,9 +148,16 @@ def send_notifications (db):
|
||||
|
||||
# Open html Template
|
||||
mylog('verbose', ['[Notification] Open html Template'])
|
||||
template_file = open(pialertPath + '/back/report_template.html', 'r')
|
||||
|
||||
|
||||
if conf.newVersionAvailable :
|
||||
template_file = open(pialertPath + '/back/report_template_new_version.html', 'r')
|
||||
template_file_path = '/back/report_template_new_version.html'
|
||||
else:
|
||||
template_file_path = '/back/report_template.html'
|
||||
|
||||
mylog('verbose', ['[Notification] Using template', template_file_path])
|
||||
|
||||
template_file = open(pialertPath + template_file_path, 'r')
|
||||
|
||||
mail_html = template_file.read()
|
||||
template_file.close()
|
||||
|
||||
Reference in New Issue
Block a user