Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Wireguard Server abfragen -> Client Infos

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Wireguard Server abfragen -> Client Infos

Geplant Angeheftet Gesperrt Verschoben JavaScript
25 Beiträge 3 Kommentatoren 1.7k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • David G.D David G.

    @kuddel

    So dürfte er erst nach einem Ergebnis oder 2sek weiter machen oder?
    Das ist der Code den mit Blockly gibt.

    httpGet('https://xxx.de', { timeout: 2000, responseType: 'text' }, async (err, response) => {
       console.info(response.data); 
    });
    
    K Offline
    K Offline
    Kuddel
    schrieb am zuletzt editiert von
    #16

    @david-g timeout: 2000 bedeutet doch eigentlich nur, dass die Abfrage nicht länger als 2 Sekunden dauern darf.

    Eine Pause ist es aber nicht

    David G.D 1 Antwort Letzte Antwort
    0
    • K Kuddel

      @david-g timeout: 2000 bedeutet doch eigentlich nur, dass die Abfrage nicht länger als 2 Sekunden dauern darf.

      Eine Pause ist es aber nicht

      David G.D Online
      David G.D Online
      David G.
      schrieb am zuletzt editiert von David G.
      #17

      @kuddel

      Das ist das Blockly was mir den Code generiert hat.
      Alles innerhalb des httpget Baustsins wird dort erst nach einer Antwort oder 2sek ausgeführt.

      Screenshot_20241015_110357_Chrome.jpg

      Edit
      Hier siehst du, dass die der Fehler schon zwischen beiden Warnungen kommt.
      Screenshot_20241015_113246_Chrome.jpg

      Mit einer echten Website hab ich da auch ein result stehen. Nur zu lang für einen Screenshot.

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      K 1 Antwort Letzte Antwort
      0
      • David G.D David G.

        @kuddel

        Das ist das Blockly was mir den Code generiert hat.
        Alles innerhalb des httpget Baustsins wird dort erst nach einer Antwort oder 2sek ausgeführt.

        Screenshot_20241015_110357_Chrome.jpg

        Edit
        Hier siehst du, dass die der Fehler schon zwischen beiden Warnungen kommt.
        Screenshot_20241015_113246_Chrome.jpg

        Mit einer echten Website hab ich da auch ein result stehen. Nur zu lang für einen Screenshot.

        K Offline
        K Offline
        Kuddel
        schrieb am zuletzt editiert von
        #18

        @david-g

        ICh bin schon einen Schritt weiter gekommen.

        Wenn ich alle weiteren Schritte mit in den HTTP Get Block schreibe funktioniert es.

        Problem ist jetzt, dass es nur für verbundene Clients geht.

        Morgen mache ich einen erneuten Anlauf, um das Skript für alle Clients lauffähig zu bekommen

        cc46f443-aab4-49bf-ad4d-9f2dcf631bd4-grafik.png

        K 1 Antwort Letzte Antwort
        0
        • K Kuddel

          @david-g

          ICh bin schon einen Schritt weiter gekommen.

          Wenn ich alle weiteren Schritte mit in den HTTP Get Block schreibe funktioniert es.

          Problem ist jetzt, dass es nur für verbundene Clients geht.

          Morgen mache ich einen erneuten Anlauf, um das Skript für alle Clients lauffähig zu bekommen

          cc46f443-aab4-49bf-ad4d-9f2dcf631bd4-grafik.png

          K Offline
          K Offline
          Kuddel
          schrieb am zuletzt editiert von
          #19

          So, das Skript macht jetzt was es soll

          cd29096c-f006-451c-9734-24d9263eae80-grafik.png

          Morgen kommen dann nur noch Optimierungen

          K 1 Antwort Letzte Antwort
          1
          • K Kuddel

            So, das Skript macht jetzt was es soll

            cd29096c-f006-451c-9734-24d9263eae80-grafik.png

            Morgen kommen dann nur noch Optimierungen

            K Offline
            K Offline
            Kuddel
            schrieb am zuletzt editiert von
            #20

            Mein Script erstellt jetzt folgende zwei JSON Datein:

            8cf30247-84c9-4b91-91c3-19482d8c0ee4-grafik.png

            Oben sieht man den aktuellen Zustand:
            Das Land und die Herkunft werden nur abgefragt, wenn sich der Client verbindet oder trennt. Habe da im Test irgednwann eine Ablehnung von der APi bekommen, weil ich zu viele Abfragen gestellt habe.
            Des Weiteren läuft das Skript bei Änderungen des Traffics sowie der IP erneut los.

            Unten sieht man eine Verbindungshistory, die nur befüllt wird, wenn sich ein Client verbindet oder wieder trennt.

            Wenn Interesse besteht, kann ich das Skript gern teilen 🙂

            NegaleinN 1 Antwort Letzte Antwort
            1
            • K Kuddel

              Mein Script erstellt jetzt folgende zwei JSON Datein:

              8cf30247-84c9-4b91-91c3-19482d8c0ee4-grafik.png

              Oben sieht man den aktuellen Zustand:
              Das Land und die Herkunft werden nur abgefragt, wenn sich der Client verbindet oder trennt. Habe da im Test irgednwann eine Ablehnung von der APi bekommen, weil ich zu viele Abfragen gestellt habe.
              Des Weiteren läuft das Skript bei Änderungen des Traffics sowie der IP erneut los.

              Unten sieht man eine Verbindungshistory, die nur befüllt wird, wenn sich ein Client verbindet oder wieder trennt.

              Wenn Interesse besteht, kann ich das Skript gern teilen 🙂

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #21

              @kuddel sagte in Wireguard Server abfragen -> Client Infos:

              Wenn Interesse besteht, kann ich das Skript gern teilen

              Ja bitte! 🙂

              Und die View auch bitte! 😉

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              K 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

                @kuddel sagte in Wireguard Server abfragen -> Client Infos:

                Wenn Interesse besteht, kann ich das Skript gern teilen

                Ja bitte! 🙂

                Und die View auch bitte! 😉

                K Offline
                K Offline
                Kuddel
                schrieb am zuletzt editiert von Kuddel
                #22

                @negalein

                Das Skript habe ich mit freudlicher Unterstützung von ChatGPT erstellt. Ist also nicht nur auf meinem Mist gewachsen ^^

                Skript:

                /////////////////////
                // Wireguard Infos //
                /////////////////////
                async function wireguard_infos(obj) {
                   // Define lists for clients
                   const list_of_clients = [];
                
                   // Create states if they don't exist
                   await createStateIfNotExists('0_userdata.0.wireguard-clients.Wireguard-JSON', '[]', { name: 'Wireguard-JSON', type: 'string' });
                   await createStateIfNotExists('0_userdata.0.wireguard-clients.Letztes_Update', '', { name: 'Letztes_Update', type: 'string' });
                
                   // Check if the trigger was for *.connected
                   let isConnectedTrigger = obj?.id && (obj.id.includes('.connected') || obj.id.includes('.endpoint'));
                
                   // Get the current stored clients data from 0_userdata.0.wireguard-clients.Wireguard-JSON
                   let storedClients = JSON.parse(getState('0_userdata.0.wireguard-clients.Wireguard-JSON').val);
                
                   // Iterate over each Wireguard client
                   var cacheSelector = $('[id=wireguard.0.Wireguard-wg0.peers.*.connected]');
                   cacheSelector.each(function(id, i) {
                       var client_id = getObject(id)._id;
                       client_id = client_id.replace(".connected", "");
                
                       // Get client name and status
                       var client_name = getState(client_id + ".device").val;
                       let client_status = getState(client_id + ".connected").val;
                
                       // Get connection time in German format
                       var client_connection_time = formatDateToGerman(new Date(getState(client_id + ".connected").lc));
                
                       // Prepare other client details (empty values if disconnected)
                       let client_ip = '';
                       let client_transfer_dl = '';
                       let client_transfer_ul = '';
                
                       if (client_status === true) {
                           // Get IP address and split it from the port
                           client_ip = getState(client_id + ".endpoint").val.split(':')[0];
                
                           // Calculate download and upload transfers in MB
                           client_transfer_dl = (getState(client_id + ".transferRx").val / 1048576).toFixed(2) + ' MB';
                           client_transfer_ul = (getState(client_id + ".transferTx").val / 1048576).toFixed(2) + ' MB';
                       }
                
                       // Format status
                       var client_status_formatted = client_status === false ? '🔴' : '🟢';
                
                       // Check if this client exists in the stored clients' data
                       let storedClient = storedClients.find(c => c.client_name === client_name);
                
                       // Initialize origin values
                       let client_origin = '';
                       let client_origin_flag = '';
                
                   	// Preserve stored client origin information
                       if (storedClient && storedClient.client_origin && storedClient.client_origin_flag && client_status === true) {
                           client_origin = storedClient.client_origin;
                           client_origin_flag = storedClient.client_origin_flag;
                       }
                
                       // Add client details to the list
                       list_of_clients.push({
                           "client_status_formatted": client_status_formatted,
                           "client_connection_time": client_connection_time,
                           "client_name": client_name,
                           "client_ip": client_ip,
                           "client_transfer_dl": client_transfer_dl,
                           "client_transfer_ul": client_transfer_ul,
                           "client_origin_flag": client_origin_flag,
                           "client_origin": client_origin,
                           "client_status": client_status
                       });
                   });
                
                   // Only fetch origin information for connected clients if the trigger was *.connected
                   if (isConnectedTrigger) {
                       for (let client of list_of_clients) {
                           if (client.client_ip) {
                               // Check if the client exists in the stored data and has valid origin values
                               let storedClient = storedClients.find(c => c.client_name === client.client_name);
                               
                               if (storedClient && storedClient.client_origin && storedClient.client_origin_flag) {
                                   // Use the stored values if they are valid
                                   client.client_origin = storedClient.client_origin;
                                   client.client_origin_flag = storedClient.client_origin_flag;
                               } else {
                                   // Fetch and set if not already stored
                                   client.client_origin = await fetchClientOrigin(client.client_ip);
                                   client.client_origin_flag = await fetchClientOriginCountryCode(client.client_ip);
                               }
                           }
                       }
                   }
                
                   // Sort clients by status and name
                   list_of_clients.sort((a, b) => {
                       // Compare client_status first, true should come before false
                       if (a.client_status === b.client_status) {
                           // If client_status is the same, compare client_name
                           return a.client_name.localeCompare(b.client_name);
                       } else {
                           // Sort true (1) before false (0)
                           return a.client_status === true ? -1 : 1;
                       }
                   });
                
                   // Write formatted lists to states for VIS and JARVIS
                   let dp = "0_userdata.0.wireguard-clients.Wireguard-JSON";
                   if (JSON.stringify(getState(dp).val) !== JSON.stringify(list_of_clients)) {
                       setStateDelayed(dp, JSON.stringify(list_of_clients), 800);
                   }
                
                   // Update last synchronization time
                   dp = "0_userdata.0.wireguard-clients.Letztes_Update";
                   let datum = new Date();
                   let heute = datum.getDate() + "." + (datum.getMonth() + 1) + "." + datum.getFullYear() + " " + datum.getHours() + ":" + datum.getMinutes() + ":" + datum.getSeconds() + " Uhr";
                   setStateDelayed(dp, heute, 800);
                }
                
                
                ///////////////////////
                // Wireguard history //
                ///////////////////////
                async function wireguard_history(event) {
                   // Define list for history clients
                   const list_of_clients = [];
                
                   // Create state for Wireguard history if not exists
                   await createStateIfNotExists('0_userdata.0.wireguard-clients.Wireguard-JSON-History', '[]', { name: 'Wireguard-JSON-History', type: 'string' });
                
                   // Get client ID from event
                   var client_id = event.id.replace(".connected", "");
                
                   // Get client name and status
                   var client_name = getState(client_id + '.device').val;
                   let client_status = event.state.val;
                   let client_status_formatted = event.state.val === true ? "🟢" : "🔴";
                
                   // Get connection time in German format
                   var client_connection_time = formatDateToGerman(new Date(getState(client_id + ".connected").lc));
                
                   // Prepare other history client details
                   var client_ip = getState(client_id + ".endpoint").val.split(':')[0];
                   var client_transfer_dl, client_transfer_ul;
                
                   if (client_status === false) {
                       client_transfer_dl = (getState(client_id + ".transferRx").val / 1048576).toFixed(2) + ' MB';
                       client_transfer_ul = (getState(client_id + ".transferTx").val / 1048576).toFixed(2) + ' MB';
                   } else {
                       client_transfer_dl = '';
                       client_transfer_ul = '';
                   }
                
                   // Add history client details to the list
                   list_of_clients.push({
                       "client_status": client_status_formatted,
                       "client_connection_time": client_connection_time,
                       "client_name": client_name,
                       "client_ip": client_ip,
                       "client_transfer_dl": client_transfer_dl,
                       "client_transfer_ul": client_transfer_ul,
                       "client_origin_flag": '',
                       "client_origin": ''
                   });
                
                   // Fetch origin information for connected IPs
                   for (let client of list_of_clients) {
                       if (client.client_ip) {
                           client.client_origin = await fetchClientOrigin(client.client_ip);
                       }
                   }
                
                   // Fetch country_code for connected clients
                   for (let client of list_of_clients) {
                       if (client.client_ip) {
                           client.client_origin_flag = await fetchClientOriginCountryCode(client.client_ip);
                       }
                   }
                
                   // Append history clients to existing history state
                   var json_history = JSON.parse(getState('0_userdata.0.wireguard-clients.Wireguard-JSON-History').val);
                   json_history.unshift(...list_of_clients);
                   setState('0_userdata.0.wireguard-clients.Wireguard-JSON-History', JSON.stringify(json_history));
                }
                
                
                //////////////
                // Triggers //
                //////////////
                
                // Define triggers for updating wireguard data
                $('wireguard.0.*.connected').on(wireguard_infos);
                $('wireguard.0.*.endpoint').on(wireguard_infos);
                $('wireguard.0.*.transferRx').on(wireguard_infos);
                $('wireguard.0.*.transferTx').on(wireguard_infos);
                
                // Trigger wireguard function on start
                wireguard_infos();
                
                // Define triggers for logging wireguard connection history
                $('wireguard.0.*.connected').on(wireguard_history);
                
                
                ///////////////
                // Functions //
                ///////////////
                
                // Helper function to make httpGet requests async
                function httpGetAsync(url) {
                   return new Promise((resolve, reject) => {
                       httpGet(url, { timeout: 2000, responseType: 'text' }, (err, response) => {
                           if (err) return reject(err);
                           resolve(response);
                       });
                   });
                }
                
                // Helper function to create states asynchronously if they don't exist
                async function createStateIfNotExists(stateId, defaultValue, attributes) {
                   if (!existsState(stateId)) {
                       await createStateAsync(stateId, defaultValue, attributes);
                   }
                }
                
                // Helper function to format date and time into German format
                function formatDateToGerman(date) {
                   const days = ["So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."];
                   let dayName = days[date.getDay()];
                   let day = ('0' + date.getDate()).slice(-2);
                   let month = ('0' + (date.getMonth() + 1)).slice(-2);
                   let year = date.getFullYear();
                   let hours = ('0' + date.getHours()).slice(-2);
                   let minutes = ('0' + date.getMinutes()).slice(-2);
                
                   return `${dayName} ${day}.${month}.${year} - ${hours}:${minutes} Uhr`;
                }
                
                
                // Fetch client origin information using IP address
                async function fetchClientOrigin(ip) {
                   if (ip.indexOf('.') > 0) {
                       try {
                           let url = `https://api.ipapi.is/?q=${ip}`;
                           let response = await httpGetAsync(url);
                           let json = JSON.parse(response.data);
                           
                           // Check if the necessary properties exist before accessing them
                           let state = json?.location?.state || '';
                           let city = json?.location?.city || '';
                           let provider = json?.company?.name || '';
                           
                           return `${state} / ${city} / ${provider}`;
                       } catch (error) {
                           console.error('Wireguard Script: Error fetching client origin:', error);
                           return '';
                       }
                   }
                   return '';
                }
                
                // Fetch client origin country code using IP address
                async function fetchClientOriginCountryCode(ip) {
                   if (ip.indexOf('.') > 0) {
                       try {
                           let url = `https://api.ipapi.is/?q=${ip}`;
                           let response = await httpGetAsync(url);
                           let json = JSON.parse(response.data);
                           
                           // Check if the necessary properties exist before accessing them
                           let countryCode = json?.location?.country_code || '';
                           return `<img src="https://flagsapi.com/${countryCode}/flat/64.png" style="width:20px;height:20px;">`;
                       } catch (error) {
                           console.error('Wireguard Script: Error fetching client origin country code:', error);
                           return 'Unknown';
                       }
                   }
                   return '';
                }
                
                

                View Export (VIS 1)

                {
                   "settings": {
                       "style": {
                           "background_class": "",
                           "background-color": "#303030",
                           "background-image": "",
                           "background-repeat": "",
                           "background-attachment": "",
                           "background-position": "",
                           "background-size": "",
                           "background-clip": "",
                           "background-origin": ""
                       },
                       "theme": "redmond",
                       "sizex": "1500",
                       "sizey": "2500",
                       "gridSize": "",
                       "useBackground": false,
                       "snapType": null,
                       "useAsDefault": true,
                       "alwaysRender": true
                   },
                   "widgets": {
                       "e00001": {
                           "tpl": "tplVis-materialdesign-Table",
                           "data": {
                               "oid": "0_userdata.0.wireguard-clients.Wireguard-JSON",
                               "g_fixed": true,
                               "g_visibility": false,
                               "g_css_font_text": false,
                               "g_css_background": false,
                               "g_css_shadow_padding": false,
                               "g_css_border": false,
                               "g_gestures": false,
                               "g_signals": false,
                               "g_last_change": false,
                               "countCols": "7",
                               "tableLayout": "standard",
                               "showHeader": true,
                               "headerTextSize": "20px",
                               "showColumn0": "true",
                               "colType0": "text",
                               "textAlign0": "center",
                               "showColumn1": "true",
                               "colType1": "text",
                               "textAlign1": "right",
                               "signals-cond-0": "==",
                               "signals-val-0": true,
                               "signals-icon-0": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-0": 0,
                               "signals-blink-0": false,
                               "signals-horz-0": 0,
                               "signals-vert-0": 0,
                               "signals-hide-edit-0": false,
                               "signals-cond-1": "==",
                               "signals-val-1": true,
                               "signals-icon-1": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-1": 0,
                               "signals-blink-1": false,
                               "signals-horz-1": 0,
                               "signals-vert-1": 0,
                               "signals-hide-edit-1": false,
                               "signals-cond-2": "==",
                               "signals-val-2": true,
                               "signals-icon-2": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-2": 0,
                               "signals-blink-2": false,
                               "signals-horz-2": 0,
                               "signals-vert-2": 0,
                               "signals-hide-edit-2": false,
                               "lc-type": "last-change",
                               "lc-is-interval": true,
                               "lc-is-moment": false,
                               "lc-format": "",
                               "lc-position-vert": "top",
                               "lc-position-horz": "right",
                               "lc-offset-vert": 0,
                               "lc-offset-horz": 0,
                               "lc-font-size": "12px",
                               "lc-font-family": "",
                               "lc-font-style": "",
                               "lc-bkg-color": "",
                               "lc-color": "",
                               "lc-border-width": "0",
                               "lc-border-style": "",
                               "lc-border-color": "",
                               "lc-border-radius": 10,
                               "lc-zindex": 0,
                               "showColumn2": "true",
                               "colType2": "text",
                               "textAlign2": "center",
                               "showColumn3": true,
                               "colType3": "text",
                               "textAlign3": "center",
                               "label0": "Status",
                               "label2": "Client",
                               "label1": "Last Connection Change",
                               "padding_left0": "10",
                               "label3": "IP",
                               "dataJson": "",
                               "padding_left2": "",
                               "class": "tableLog",
                               "textSize3": "small",
                               "textColor2": "#8f8f8f",
                               "textSize2": "small",
                               "padding_right3": "",
                               "rowHeight": "25",
                               "textSize0": "small",
                               "textSize1": "small",
                               "padding_left1": "",
                               "textColor0": "#8f8f8f",
                               "textColor1": "#8f8f8f",
                               "textColor3": "#8f8f8f",
                               "imageSize1": "",
                               "prefix3": "<span style=\"word-wrap:break-all\">",
                               "suffix3": "</span>",
                               "colorHeaderRowText": "white",
                               "colorHeaderRowBackground": "#212121",
                               "colorRowBackground": "#303030",
                               "colorRowText": "#fff",
                               "dividers": "",
                               "colorBackground": "transparent",
                               "prefix2": "",
                               "prefix1": "",
                               "suffix2": "",
                               "suffix1": "",
                               "columnWidth0": "50",
                               "columnWidth1": "130",
                               "columnWidth3": "70",
                               "columnWidth2": "70",
                               "fontFamily1": "Arial, Helvetica, sans-serif",
                               "fontFamily3": "Arial, Helvetica, sans-serif",
                               "fontFamily2": "Arial, Helvetica, sans-serif",
                               "fontFamily0": "Arial, Helvetica, sans-serif",
                               "colTextSize2": "20px",
                               "colTextSize3": "20px",
                               "colTextSize1": "20px",
                               "colTextSize0": "20px",
                               "name": "Ubersicht",
                               "headerRowHeight": "30",
                               "headerFontFamily": "Arial, Helvetica, sans-serif",
                               "colNoWrap1": true,
                               "colNoWrap0": true,
                               "colTextColor0": "white",
                               "colTextColor1": "",
                               "colTextColor2": "lightblue",
                               "colTextColor3": "white",
                               "colNoWrap3": true,
                               "colNoWrap2": true,
                               "roundBorder": false,
                               "colorRowBackgroundHover": "grey",
                               "borderColor": "#mdwTheme:vis-materialdesign.0.colors.table.border",
                               "visibility-cond": "==",
                               "visibility-val": 1,
                               "visibility-groups-action": "hide",
                               "fixedHeader": false,
                               "showColumn4": "true",
                               "colType4": "text",
                               "textAlign4": "center",
                               "colTextSize4": "20px",
                               "fontFamily4": "Arial, Helvetica, sans-serif",
                               "showColumn5": "true",
                               "colType5": "text",
                               "textAlign5": "left",
                               "colTextSize5": "20px",
                               "fontFamily5": "Arial, Helvetica, sans-serif",
                               "showColumn6": "true",
                               "colType6": "text",
                               "textAlign6": "center",
                               "colTextSize6": "20px",
                               "fontFamily6": "Arial, Helvetica, sans-serif",
                               "showColumn7": true,
                               "colType7": "text",
                               "textAlign7": "center",
                               "colTextSize7": "20px",
                               "fontFamily7": "Arial, Helvetica, sans-serif",
                               "showColumn8": true,
                               "colType8": "text",
                               "textAlign8": "center",
                               "colTextSize8": "20px",
                               "fontFamily8": "Arial, Helvetica, sans-serif",
                               "columnWidth4": "60",
                               "label4": "DL",
                               "columnWidth5": "60",
                               "colNoWrap5": true,
                               "label5": "UL",
                               "label6": "Land",
                               "label7": "Origin",
                               "label8": "Origin",
                               "showColumn9": "true",
                               "colType9": "text",
                               "textAlign9": "center",
                               "colTextSize9": "60px",
                               "fontFamily9": "Arial, Helvetica, sans-serif",
                               "showColumn10": "true",
                               "colType10": "text",
                               "textAlign10": "center",
                               "colTextSize10": "#mdwTheme:vis-materialdesign.0.fontSizes.table.row",
                               "fontFamily10": "#mdwTheme:vis-materialdesign.0.fonts.table.row",
                               "label9": "Vers.",
                               "label10": "Temp.",
                               "columnWidth6": "50",
                               "columnWidth7": "200",
                               "columnWidth8": "140",
                               "colNoWrap6": true,
                               "padding_right6": "1",
                               "colNoWrap7": false
                           },
                           "style": {
                               "left": "0px",
                               "top": "0px",
                               "width": "1240px",
                               "height": "248px",
                               "z-index": "",
                               "overflow-y": ""
                           },
                           "widgetSet": "materialdesign"
                       },
                       "e00002": {
                           "tpl": "tplHqButton",
                           "data": {
                               "oid": "javascript.0.scriptEnabled.java.abfragen.wireguard_clients",
                               "min": "false",
                               "max": "true",
                               "iconName": "",
                               "btIconWidth": "100",
                               "offsetAuto": false,
                               "leftOffset": "0",
                               "topOffset": "0",
                               "timeAsInterval": "true",
                               "infoLeftFontSize": "12",
                               "infoFontRightSize": "12",
                               "caption": "",
                               "captionOn": "",
                               "iconOn": "",
                               "gestures-offsetX": 0,
                               "gestures-offsetY": 0,
                               "signals-cond-0": "==",
                               "signals-val-0": "true",
                               "signals-icon-0": "/icons-mfd-png/control_clear.png",
                               "signals-icon-size-0": "50",
                               "signals-blink-0": false,
                               "signals-horz-0": "-30",
                               "signals-vert-0": "-30",
                               "signals-hide-edit-0": false,
                               "signals-cond-1": "==",
                               "signals-val-1": "false",
                               "signals-icon-1": "/icons-mfd-png/control_cancel.png",
                               "signals-icon-size-1": "50",
                               "signals-blink-1": true,
                               "signals-horz-1": "-30",
                               "signals-vert-1": "-30",
                               "signals-hide-edit-1": false,
                               "signals-cond-2": "==",
                               "signals-val-2": true,
                               "signals-icon-2": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-2": 0,
                               "signals-blink-2": false,
                               "signals-horz-2": 0,
                               "signals-vert-2": 0,
                               "signals-hide-edit-2": false,
                               "pushButton": false,
                               "usejQueryStyle": false,
                               "g_visibility": false,
                               "styleActive": "hq-button-no-background",
                               "name": "Infos_Skript-Status_Box",
                               "infoLeftPaddingLeft": "15",
                               "infoLeftPaddingRight": "50",
                               "infoRightPaddingRight": "15",
                               "gestures-swipeLeft-limit": "-1",
                               "gestures-rotateLeft-limit": "2",
                               "styleNormal": "hq-button-no-background",
                               "testActive": false,
                               "lc-type": "last-change",
                               "lc-is-interval": true,
                               "lc-is-moment": false,
                               "lc-format": "",
                               "lc-position-vert": "top",
                               "lc-position-horz": "right",
                               "lc-offset-vert": 0,
                               "lc-offset-horz": 0,
                               "lc-font-size": "12px",
                               "lc-font-family": "",
                               "lc-font-style": "",
                               "lc-bkg-color": "",
                               "lc-color": "",
                               "lc-border-width": "0",
                               "lc-border-style": "",
                               "lc-border-color": "",
                               "lc-border-radius": 10,
                               "lc-zindex": 0,
                               "descriptionLeft": "Side brush lifetime reset",
                               "descriptionLeftDisabled": true,
                               "visibility-cond": "==",
                               "visibility-val": 1,
                               "visibility-groups-action": "hide",
                               "signals-oid-0": "javascript.0.scriptEnabled.java.abfragen.wireguard_clients",
                               "signals-oid-1": "javascript.0.scriptEnabled.java.abfragen.wireguard_clients"
                           },
                           "style": {
                               "left": "599px",
                               "top": "750px",
                               "width": "30px",
                               "height": "30px",
                               "border-width": "2px",
                               "border-style": "hidden",
                               "border-color": "{wert:javascript.0.scriptEnabled.java.abfragen.shelly_infos; wert==\"true\" ? \"#41f316\" : ",
                               "border-radius": "10px",
                               "z-index": "0",
                               "text-align": "center",
                               "font-size": "small",
                               "box-shadow": "",
                               "background": "#303030"
                           },
                           "widgetSet": "hqwidgets"
                       },
                       "e00003": {
                           "tpl": "tplValueLastchange",
                           "data": {
                               "oid": "0_userdata.0.wireguard-devices.Letztes_Update",
                               "g_fixed": true,
                               "g_visibility": false,
                               "g_css_font_text": true,
                               "g_css_background": false,
                               "g_css_shadow_padding": false,
                               "g_css_border": false,
                               "g_gestures": false,
                               "g_signals": false,
                               "g_last_change": false,
                               "visibility-cond": "==",
                               "visibility-val": 1,
                               "visibility-groups-action": "hide",
                               "signals-cond-0": "==",
                               "signals-val-0": true,
                               "signals-icon-0": "/vis/signals/lowbattery.png",
                               "signals-icon-size-0": 0,
                               "signals-blink-0": false,
                               "signals-horz-0": 0,
                               "signals-vert-0": 0,
                               "signals-hide-edit-0": false,
                               "signals-cond-1": "==",
                               "signals-val-1": true,
                               "signals-icon-1": "/vis/signals/lowbattery.png",
                               "signals-icon-size-1": 0,
                               "signals-blink-1": false,
                               "signals-horz-1": 0,
                               "signals-vert-1": 0,
                               "signals-hide-edit-1": false,
                               "signals-cond-2": "==",
                               "signals-val-2": true,
                               "signals-icon-2": "/vis/signals/lowbattery.png",
                               "signals-icon-size-2": 0,
                               "signals-blink-2": false,
                               "signals-horz-2": 0,
                               "signals-vert-2": 0,
                               "signals-hide-edit-2": false,
                               "lc-type": "last-change",
                               "lc-is-interval": true,
                               "lc-is-moment": false,
                               "lc-format": "",
                               "lc-position-vert": "top",
                               "lc-position-horz": "right",
                               "lc-offset-vert": 0,
                               "lc-offset-horz": 0,
                               "lc-font-size": "12px",
                               "lc-font-family": "",
                               "lc-font-style": "",
                               "lc-bkg-color": "",
                               "lc-color": "",
                               "lc-border-width": "0",
                               "lc-border-style": "",
                               "lc-border-color": "",
                               "lc-border-radius": 10,
                               "lc-zindex": 0,
                               "name": "Infos_Letzte_Aenderung",
                               "format_date": "DD.MM.YYYY -  hh:mm:ss",
                               "html_prepend": "Letzte Aktualisierung: ",
                               "html_append": " Uhr"
                           },
                           "style": {
                               "left": "10px",
                               "top": "750px",
                               "width": "410px",
                               "height": "30px",
                               "text-align": "left",
                               "font-weight": "bolder",
                               "font-size": "large",
                               "line-height": "30px",
                               "color": "white",
                               "z-index": ""
                           },
                           "widgetSet": "basic"
                       },
                       "e00004": {
                           "tpl": "tplHtml",
                           "data": {
                               "g_fixed": true,
                               "g_visibility": false,
                               "g_css_font_text": true,
                               "g_css_background": true,
                               "g_css_shadow_padding": false,
                               "g_css_border": false,
                               "g_gestures": false,
                               "g_signals": false,
                               "g_last_change": false,
                               "visibility-cond": "==",
                               "visibility-val": 1,
                               "visibility-groups-action": "hide",
                               "refreshInterval": "0",
                               "signals-cond-0": "==",
                               "signals-val-0": true,
                               "signals-icon-0": "/vis/signals/lowbattery.png",
                               "signals-icon-size-0": 0,
                               "signals-blink-0": false,
                               "signals-horz-0": 0,
                               "signals-vert-0": 0,
                               "signals-hide-edit-0": false,
                               "signals-cond-1": "==",
                               "signals-val-1": true,
                               "signals-icon-1": "/vis/signals/lowbattery.png",
                               "signals-icon-size-1": 0,
                               "signals-blink-1": false,
                               "signals-horz-1": 0,
                               "signals-vert-1": 0,
                               "signals-hide-edit-1": false,
                               "signals-cond-2": "==",
                               "signals-val-2": true,
                               "signals-icon-2": "/vis/signals/lowbattery.png",
                               "signals-icon-size-2": 0,
                               "signals-blink-2": false,
                               "signals-horz-2": 0,
                               "signals-vert-2": 0,
                               "signals-hide-edit-2": false,
                               "lc-type": "last-change",
                               "lc-is-interval": true,
                               "lc-is-moment": false,
                               "lc-format": "",
                               "lc-position-vert": "top",
                               "lc-position-horz": "right",
                               "lc-offset-vert": 0,
                               "lc-offset-horz": 0,
                               "lc-font-size": "12px",
                               "lc-font-family": "",
                               "lc-font-style": "",
                               "lc-bkg-color": "",
                               "lc-color": "",
                               "lc-border-width": "0",
                               "lc-border-style": "",
                               "lc-border-color": "",
                               "lc-border-radius": 10,
                               "lc-zindex": 0,
                               "html": "Skript-Status",
                               "name": "Infos_Skript-Status"
                           },
                           "style": {
                               "left": "462px",
                               "top": "750px",
                               "height": "30px",
                               "width": "130px",
                               "z-index": "",
                               "color": "white",
                               "text-align": "center",
                               "text-shadow": "",
                               "font-family": "Arial, Helvetica, sans-serif",
                               "font-style": "",
                               "font-variant": "",
                               "font-weight": "bolder",
                               "font-size": "large",
                               "line-height": "30px",
                               "background": ""
                           },
                           "widgetSet": "basic"
                       },
                       "e00005": {
                           "tpl": "tplVis-materialdesign-Table",
                           "data": {
                               "oid": "0_userdata.0.wireguard-clients.Wireguard-JSON-History",
                               "g_fixed": true,
                               "g_visibility": false,
                               "g_css_font_text": false,
                               "g_css_background": false,
                               "g_css_shadow_padding": false,
                               "g_css_border": false,
                               "g_gestures": false,
                               "g_signals": false,
                               "g_last_change": false,
                               "countCols": "7",
                               "tableLayout": "standard",
                               "showHeader": true,
                               "headerTextSize": "20px",
                               "showColumn0": "true",
                               "colType0": "text",
                               "textAlign0": "center",
                               "showColumn1": "true",
                               "colType1": "text",
                               "textAlign1": "right",
                               "signals-cond-0": "==",
                               "signals-val-0": true,
                               "signals-icon-0": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-0": 0,
                               "signals-blink-0": false,
                               "signals-horz-0": 0,
                               "signals-vert-0": 0,
                               "signals-hide-edit-0": false,
                               "signals-cond-1": "==",
                               "signals-val-1": true,
                               "signals-icon-1": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-1": 0,
                               "signals-blink-1": false,
                               "signals-horz-1": 0,
                               "signals-vert-1": 0,
                               "signals-hide-edit-1": false,
                               "signals-cond-2": "==",
                               "signals-val-2": true,
                               "signals-icon-2": "/vis.0/VIS_v3/lowbattery.png",
                               "signals-icon-size-2": 0,
                               "signals-blink-2": false,
                               "signals-horz-2": 0,
                               "signals-vert-2": 0,
                               "signals-hide-edit-2": false,
                               "lc-type": "last-change",
                               "lc-is-interval": true,
                               "lc-is-moment": false,
                               "lc-format": "",
                               "lc-position-vert": "top",
                               "lc-position-horz": "right",
                               "lc-offset-vert": 0,
                               "lc-offset-horz": 0,
                               "lc-font-size": "12px",
                               "lc-font-family": "",
                               "lc-font-style": "",
                               "lc-bkg-color": "",
                               "lc-color": "",
                               "lc-border-width": "0",
                               "lc-border-style": "",
                               "lc-border-color": "",
                               "lc-border-radius": 10,
                               "lc-zindex": 0,
                               "showColumn2": "true",
                               "colType2": "text",
                               "textAlign2": "center",
                               "showColumn3": true,
                               "colType3": "text",
                               "textAlign3": "center",
                               "label0": "Status",
                               "label2": "Client",
                               "label1": "Last Connection Change",
                               "padding_left0": "10",
                               "label3": "IP",
                               "dataJson": "",
                               "padding_left2": "",
                               "class": "tableLog",
                               "textSize3": "small",
                               "textColor2": "#8f8f8f",
                               "textSize2": "small",
                               "padding_right3": "",
                               "rowHeight": "25",
                               "textSize0": "small",
                               "textSize1": "small",
                               "padding_left1": "",
                               "textColor0": "#8f8f8f",
                               "textColor1": "#8f8f8f",
                               "textColor3": "#8f8f8f",
                               "imageSize1": "",
                               "prefix3": "<span style=\"word-wrap:break-all\">",
                               "suffix3": "</span>",
                               "colorHeaderRowText": "white",
                               "colorHeaderRowBackground": "#212121",
                               "colorRowBackground": "#303030",
                               "colorRowText": "#fff",
                               "dividers": "",
                               "colorBackground": "transparent",
                               "prefix2": "",
                               "prefix1": "",
                               "suffix2": "",
                               "suffix1": "",
                               "columnWidth0": "50",
                               "columnWidth1": "130",
                               "columnWidth3": "70",
                               "columnWidth2": "70",
                               "fontFamily1": "Arial, Helvetica, sans-serif",
                               "fontFamily3": "Arial, Helvetica, sans-serif",
                               "fontFamily2": "Arial, Helvetica, sans-serif",
                               "fontFamily0": "Arial, Helvetica, sans-serif",
                               "colTextSize2": "20px",
                               "colTextSize3": "20px",
                               "colTextSize1": "20px",
                               "colTextSize0": "20px",
                               "name": "History",
                               "headerRowHeight": "30",
                               "headerFontFamily": "Arial, Helvetica, sans-serif",
                               "colNoWrap1": true,
                               "colNoWrap0": true,
                               "colTextColor0": "white",
                               "colTextColor1": "",
                               "colTextColor2": "lightblue",
                               "colTextColor3": "white",
                               "colNoWrap3": true,
                               "colNoWrap2": true,
                               "roundBorder": false,
                               "colorRowBackgroundHover": "grey",
                               "borderColor": "#mdwTheme:vis-materialdesign.0.colors.table.border",
                               "visibility-cond": "==",
                               "visibility-val": 1,
                               "visibility-groups-action": "hide",
                               "fixedHeader": false,
                               "showColumn4": "true",
                               "colType4": "text",
                               "textAlign4": "center",
                               "colTextSize4": "20px",
                               "fontFamily4": "Arial, Helvetica, sans-serif",
                               "showColumn5": "true",
                               "colType5": "text",
                               "textAlign5": "left",
                               "colTextSize5": "20px",
                               "fontFamily5": "Arial, Helvetica, sans-serif",
                               "showColumn6": "true",
                               "colType6": "text",
                               "textAlign6": "center",
                               "colTextSize6": "20px",
                               "fontFamily6": "Arial, Helvetica, sans-serif",
                               "showColumn7": true,
                               "colType7": "text",
                               "textAlign7": "center",
                               "colTextSize7": "20px",
                               "fontFamily7": "Arial, Helvetica, sans-serif",
                               "showColumn8": true,
                               "colType8": "text",
                               "textAlign8": "center",
                               "colTextSize8": "20px",
                               "fontFamily8": "Arial, Helvetica, sans-serif",
                               "columnWidth4": "60",
                               "label4": "DL",
                               "columnWidth5": "60",
                               "colNoWrap5": true,
                               "label5": "UL",
                               "label6": "Land",
                               "label7": "Origin",
                               "label8": "Origin",
                               "showColumn9": "true",
                               "colType9": "text",
                               "textAlign9": "center",
                               "colTextSize9": "60px",
                               "fontFamily9": "Arial, Helvetica, sans-serif",
                               "showColumn10": "true",
                               "colType10": "text",
                               "textAlign10": "center",
                               "colTextSize10": "#mdwTheme:vis-materialdesign.0.fontSizes.table.row",
                               "fontFamily10": "#mdwTheme:vis-materialdesign.0.fonts.table.row",
                               "label9": "Vers.",
                               "label10": "Temp.",
                               "columnWidth6": "50",
                               "columnWidth7": "200",
                               "columnWidth8": "140",
                               "colNoWrap6": true,
                               "padding_right6": "1",
                               "colNoWrap7": false
                           },
                           "style": {
                               "left": "5px",
                               "top": "280px",
                               "width": "1240px",
                               "height": "460px",
                               "z-index": "",
                               "overflow-y": "auto"
                           },
                           "widgetSet": "materialdesign"
                       }
                   },
                   "name": "2422_Netzwerk_Wireguard",
                   "filterList": []
                }
                

                1 Antwort Letzte Antwort
                1
                • NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #23

                  @kuddel sagte in Wireguard Server abfragen -> Client Infos:

                  Skript

                  Sorry, für die seeeeeeehr lange Zeit.
                  Hab es komplett vergessen.

                  Ist das Script ohne Anpassung lauffähig?

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  K 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

                    @kuddel sagte in Wireguard Server abfragen -> Client Infos:

                    Skript

                    Sorry, für die seeeeeeehr lange Zeit.
                    Hab es komplett vergessen.

                    Ist das Script ohne Anpassung lauffähig?

                    K Offline
                    K Offline
                    Kuddel
                    schrieb am zuletzt editiert von
                    #24

                    @negalein habe das Skript mal eben fix aufm Handy überflogen.

                    Sollte ohne Anpassungen laufen.

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • K Kuddel

                      @negalein habe das Skript mal eben fix aufm Handy überflogen.

                      Sollte ohne Anpassungen laufen.

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #25

                      @kuddel sagte in Wireguard Server abfragen -> Client Infos:

                      Sollte ohne Anpassungen laufen.

                      Danke

                      Es läuft, mir wird in 0_userdata.0.wireguard-clients.Wireguard-JSON-History der Client gezeigt, der nach Scriptstart verbunden wurde.

                      f6a3c312-e55b-4f6f-b9d4-4e15b7678df9-image.png

                      Aber 0_userdata.0.wireguard-clients.Wireguard-JSON bleibt leer.

                      20930bb2-0aba-4331-8cf4-ce546cceba30-image.png

                      Log vom Script

                      26.7.2025, 22:59:03.091	[info ]: javascript.1 (632) script.js.Netzwerk.Wireguard-Tabelle: Stopping script
                      26.7.2025, 22:59:03.098	[info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: Stopping script
                      26.7.2025, 22:59:29.994	[info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: start JavaScript (Javascript/js)
                      26.7.2025, 22:59:30.016	[info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: registered 56 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                      26.7.2025, 23:01:24.263	[warn ]: javascript.0 (606)     at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:136:22)
                      26.7.2025, 23:01:24.263	[warn ]: javascript.0 (606)     at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:144:20)
                      26.7.2025, 23:01:24.264	[error]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: Error: TypeError: Cannot read properties of null (reading 'split')
                      26.7.2025, 23:01:24.264	[error]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle:     at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:144:57)
                      

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      759

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe