Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. 3 Skripte melden Fehler seit js 8.4.0

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

3 Skripte melden Fehler seit js 8.4.0

Scheduled Pinned Locked Moved JavaScript
21 Posts 7 Posters 2.6k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • crunchipC Away
    crunchipC Away
    crunchip
    Forum Testing Most Active
    wrote on last edited by
    #3

    @nashra siehe https://forum.iobroker.net/post/1163109 für ip-adresse, falss du das meinst

    umgestiegen von Proxmox auf Unraid

    1 Reply Last reply
    1
    • NashraN Nashra

      Hallo Leute,
      seit js 8.4.0 wollen 3 Skripte nicht so recht bzw. eins versagt komplett den Dienst.
      Da ich mich damit nicht auskenne wäre ich für Hilfe dankbar, wobei ich sagen muß
      das zwei von @pix sind und eins von, ich glaube, @liv-in-sky

      /* VIS Tagesschau_Link
      parsed die Seite https://www.tagesschau.de/100sekunden/ und sucht nach der URL zum aktuellsten Video
      02.03.2016 erstellt von pix
      15.03.2016 zu Javascript Instanz 1 gewechselt
      24.09.2016 umbenannt in VIS_Link_Tagesschau
      11.11.2018 Skript angepasst und optimiert
      03.05.2021 Skript angepasst
            tagesschau 100s mp4
            tagesschau Stream HTML-Link
      todo: axios statt request() und etwas schöner machen
      */
      
      const fC = false; // forceCreation für createState()
      const logging = true;
      const instanz = '0_userdata.0.';
      const idURL = instanz + 'Tagesschau.URL.Tagesschau';
      const idURL100s = instanz + 'Tagesschau.URL.Tagesschau100s';
      
      // ab hier nix mehr ändern
      createState(idURL,"", fC, {
        name: "HTML-Seite mit Tagesschau-Stream",
        desc: "geparster Link aus tagesschau.de",
        type: "string",
        role: "text.url"
      });
      
      createState(idURL100s,"", fC, {
        name: "Link zu Tagesschau in 100s",
        desc: "geparster Link aus tagesschau.de",
        type: "string",
        role: "text.url"
      });
      
      function findeURL () {   
        let request = require('request');
        let film_url;
        try {
            // Tagesschau in 100s
            const link = "https://www.tagesschau.de/multimedia/sendung/tagesschau_in_100_sekunden/";
            let regexp = /media\.tagesschau\.de\/video\/\d*\/\d*\/TV-\d*-\d*-\d*\.webxl\.h264\.mp4/gm;
            request(link, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    let result_arr = regexp.exec(body);
                    film_url = result_arr[0];
                    setState(idURL100s, "https://" + film_url);
                    if (logging) log ("URL: " + film_url);
                } else  { // Error beim Einlesen
                    log(error, 'error'); 
                }
            });   // Ende request 
        } catch (fehler) {
            log("Fehler TS_100s (try): " + fehler, "error");
        }
      
      
        
        // nicht schön, aber nochmal für Stream
        let stream_url;
        try {
            //Tagesschau Stream als HTML
            const link = "https://www.tagesschau.de/multimedia/livestreams/";
            let regexp = /https:\/\/www\.tagesschau\.de\/multimedia\/livestreams\/index~player\.html/gm;
      
            request(link, function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    let result_arr = regexp.exec(body);
                    stream_url = result_arr[0];
                    setState(idURL, stream_url);
                    if (logging) log ("HTML: " + stream_url);
                } else  { // Error beim Einlesen
                    log(error, 'error'); 
                }
            });   // Ende request 
        } catch (fehler) {
            log("Fehler TS_2 Stream (try): " + fehler, "error");
        }
      } // Ende findeURL
      
      schedule("8 */1 * * *", findeURL); // jedeStunde um 8 nach voll
      setTimeout(findeURL, 2000);
      
      
      

      javascript.0	13:33:15.006	info	Start JavaScript script.js.Allerlei.Tagesschau-neu (Javascript/js)
      javascript.0	13:33:15.020	info	script.js.Allerlei.Tagesschau-neu: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
      javascript.0	13:33:17.021	warn	script.js.Allerlei.Tagesschau-neu: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
      javascript.0	13:33:17.226	info	script.js.Allerlei.Tagesschau-neu: HTML: https://www.tagesschau.de/multimedia/livestreams/index~player.html
      javascript.0	13:33:17.228	info	script.js.Allerlei.Tagesschau-neu: URL: media.tagesschau.de/video/2024/0526/TV-20240526-1303-2500.webxl.h264.mp4
      

      /* IP Adresse einlesen 
      Quelle: http://ipecho.net/plain
      {1}
      erstellt: 27.08.2015 von pix
      03.01.2016 ID erstellt
      16.01.2018 Code optimiert
      22.07.2020 WAN IP kommt jetzt erstmal aus Unifi Adapter
      14.11.2021 bessere Quelle ohne Schnickschnack http://ipecho.net/plain
                Danke @wildbill und @crunchip https://forum.iobroker.net/post/702174      
      */
      
      const fC = false;
      const logging = true; // (true;false) Logausgabe zentral schalten, ob stündlich geloggt werden soll
      const idIP_Adresse = "IP.public";
      const idIP_aktualisieren = "IP.aktualisieren";
      
      let url = "http://ipecho.net/plain"; 
      
      // Objekte erstellen
      createState(idIP_Adresse, " ", fC, {
         name: "Öffentliche IP-Adresse",
         desc: "WAN Internet Protokoll Adresse",
         type: "string",
         role: "url"
      });
      
      createState(idIP_aktualisieren, false, fC, {
         name: "Taster zum Aktualisieren der IP Adresse",
         desc: "IP wird neu eingelesen",
         type: "boolean",
         role: "switch"
      });
      
      // Daten einlesen
      function ip_einlesen() {
         
         request(url, function (error, response, body) {
             if (!error && response.statusCode == 200) {
                 try {
                     if (logging) log("IP-Adresse (ausgelesen von " + url + "): " + body);
                     setState(idIP_Adresse, body);
                 } catch (e) {
                     log("IP-Adresse einlesen - Parse Fehler: " + e, "warn");
                 }
             } else log("IP-Adresse einlesen - Fehler/" + error);
         });   // Ende request 
         
         /*
         setState(idIP_Adresse, getState("unifi.0.default.health.wan.wan_ip").val, function () {
             log("WAN IP aus Unifi-Adapter ausgelesen");
         });
         */
      }
      
      // Manuelles Einlesen der IP (über VIS Taster)
      on(idIP_aktualisieren, function (obj) {
         if (!obj.state.ack && obj.state.val) {
             ip_einlesen(); // Daten sofort einlesen
             log("IP-Adresse einlesen - manuell gestartet");
             setState(idIP_aktualisieren, false, false); // zurücksetzen des Tasters
         }
      });
      
      // Ausführung
      ip_einlesen();
      schedule("16 * * * *", ip_einlesen); // jede Stunde um 16min nach
      
      

      javascript.0	13:34:45.687	info	Start JavaScript script.js.Netzwerk.IP-Adresse2 (Javascript/js)
      javascript.0	13:34:45.703	error	script.js.Netzwerk.IP-Adresse2: ReferenceError: request is not defined
      javascript.0	13:34:45.703	error	at ip_einlesen (script.js.Netzwerk.IP-Adresse2:38:5)
      javascript.0	13:34:45.703	error	at script.js.Netzwerk.IP-Adresse2:66:1
      javascript.0	13:34:45.703	error	at script.js.Netzwerk.IP-Adresse2:73:3
      

      // Imports -> müssen im Javascript Adapter unter 'Zusätzliche NPM-Module' eingetragen sein
      const moment = require("moment");
      const momentDurationFormatSetup = require("moment-duration-format");
      
      
      // Skript Einstellungen *************************************************************************************************************************************************
      
      let dpList = '0_userdata.0.vis.AdapterStatus.jsonList';                     // Datenpunkt für IconList Widget (Typ: Zeichenkette (String))
      let dpAdapterRestart = '0_userdata.0.vis.AdapterStatus.restartTrigger';     // Datenpunkt für Adapter restart (Typ: Zeichenkette (String))
      
      let dpSortMode = '0_userdata.0.vis.AdapterStatus.sortMode';                 // Datenpunkt für Sortieren (Typ: Zeichenkette (String))
      let dpFilterMode = '0_userdata.0.vis.AdapterStatus.filterMode';             // Datenpunkt für Filter (Typ: Zeichenkette (String))
      
      let adminUpdatesList = 'admin.0.info.updatesList';                          // Datenpunkt Admin Adapter für verfübare Updates der Adapter
      
      const checkInterval = 60;                                                   // Interval wie oft Status der Adapter aktualisiert werden soll (in Sekunden)
      
      let sprache = 'de';                                                         // Sprache für formatierung Dauer 
      let formatierungDauer = "dd[T] hh[h] mm[m]";                                // Formatierung der Dauer -> siehe momentjs library
      
      let neustarten = true;                                                      // true: Adapter wird neugestartet, false: Adapter wird gestoppt oder gestartet
      
      let farbeAdapterAktiv = 'green';                                            // Status Bar Farbe wenn Adapter aktiv ist
      let farbeAdapterNichtAktiv = 'FireBrick';                                   // Status Bar Farbe wenn Adapter nicht aktiv ist oder Fehler vorliegt
      let farbeAdapterDeaktiviert = 'darkgrey';                                   // Status Bar Farbe wenn Adapter deaktiviert ist
      let farbeAdapterNichtVerbunden = 'yellow';                                  // Status Bar Farbe wenn Adapter nicht verbunden ist
      let farbeAdapterZeitgesteuert = 'lightgreen';                               // Status Bar Farbe wenn Adapter zeitgesteuert ist
      let farbeAdapterErweiterung = '#44739e';                                    // Status Bar Farbe wenn Adapter Erweiterung ist
      let farbeAdapterSystem = '#44739e';                                         // Status Bar Farbe wenn Adapter mit System gestartet wird
      
      let sortResetAfter = 120;                                                   // Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert)
      let sortReset = 'memHeapUsed'                                               // Sortierung auf die zurückgesetzt werden soll
      
      let filterResetAfter = 120;                                                 // Filter nach X Sekunden zurücksetzen (0=deaktiviert)
      
      // **********************************************************************************************************************************************************************
      
      
      // Fomate für moment Lib
      moment.locale(sprache);
      
      // auf .alive Änderungen hören
      let aliveSelector = `[id=system.adapter.*.alive]`;
      let adapterAliveList = $(aliveSelector);
      if (adapterAliveList.length === 0) {
         // Fehlermeldung ausgeben, wenn selector kein result liefert
         console.error(`no result for selector '${aliveSelector}'`)
      } else {
         // listener nur für Änderung bei alive
         adapterAliveList.on(adapterStatus);
      }
      
      // auf .connection Änderungen hören
      let connectionSelector = `[id=*.info.connection]`;
      let adapterConnectionList = $(connectionSelector);
      if (adapterConnectionList.length === 0) {
         // Fehlermeldung ausgeben, wenn selector kein result liefert
         console.error(`no result for selector '${connectionSelector}'`)
      } else {
         // listener nur für Änderung bei alive
         adapterConnectionList.on(adapterStatus);
      }
      
      // auf .connected Änderungen hören
      let connectedSelector = `[id=system.adapter.*.connected]`;
      let adapterConnectedList = $(connectedSelector);
      if (adapterConnectedList.length === 0) {
         // Fehlermeldung ausgeben, wenn selector kein result liefert
         console.error(`no result for selector '${connectedSelector}'`)
      } else {
         // listener nur für Änderung bei alive
         adapterConnectedList.on(adapterStatus);
      }
      
      // auf Änderungen der Sortieung hören
      on({ id: dpSortMode, change: 'any' }, adapterStatus);
      on({ id: dpSortMode, change: 'any' }, resetSort);
      
      // auf Änderungen der Filter hören
      on({ id: dpFilterMode, change: 'any' }, adapterStatus);
      on({ id: dpFilterMode, change: 'any' }, resetFilter);
      
      // Funktion adapterStatus alle x Sekunden ausführen
      schedule('*/' + checkInterval + ' * * * * *', adapterStatus);
      
      function adapterStatus() {
         // Funktion um Status der Adapter abzurufen und als JSON String für das Material Design Widget IconList aufbereiten
         try {
             let adapterList = [];
             let updateList = myHelper().getStateValueIfExist(adminUpdatesList);
      
             for (var i = 0; i <= adapterAliveList.length - 1; i++) {
                 let id = adapterAliveList[i].replace('.alive', '');
                 let obj = getObject(adapterAliveList[i].replace('.alive', ''));
      
                 let nameArray = id.replace('system.adapter.', '').split(".");
      
                 let name = nameArray[0];
                 name = name.charAt(0).toUpperCase() + name.slice(1);
      
                 let nameWithInstance = name;
                 let adapterInstance = nameArray[1];
                 if (parseInt(adapterInstance) > 0) {
                     nameWithInstance = name + '.' + adapterInstance;
                 }
      
                 let uptime = (existsState(id + '.uptime')) ? moment.duration(getState(id + '.uptime').val, 'seconds').format(formatierungDauer, 0) : '-';
                 let image = (myHelper().checkCommonPropertyExist(obj, 'icon')) ? `/${nameArray[0]}.admin/${obj.common.icon}` : 'image-off-outline';
      
                 let hasUpdates = updateList && updateList.includes(nameArray[0]);
                 let newVersion = (hasUpdates) ? '<span class="mdi mdi-update" style="color: #ec0909;"></span>' : '';
      
                 let text = `<div style="display: flex; flex-direction: row; line-height: 1.5; padding-right: 8px; align-items: center;">
                                 <div style="flex: 1">${newVersion} ${nameWithInstance}</div>
                                 <div style="color: #d7cec1; font-size: 12px; font-family: RobotoCondensed-LightItalic;">${myHelper().getCommonPropertyIfExist(obj, 'version', '-', 'v', '')}</div>
                             </div>`
      
                 let subText = `<div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">CPU</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${myHelper().getStateValueIfExist(id + '.cpu', '-', '', ' %')}</div>
                                 </div>
                                 <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">RAM total</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${myHelper().getStateValueIfExist(id + '.memHeapTotal', '-', '', ' MB')}</div>
                                 </div>
                                 <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">RAM verwendet</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${myHelper().getStateValueIfExist(id + '.memHeapUsed', '-', '', ' MB')}</div>
                                 </div>
                                 <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">RAM reserviert</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${myHelper().getStateValueIfExist(id + '.memRss', '-', '', ' MB')}</div>
                                 </div>
                                 <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">Betriebszeit</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${uptime}</div>
                                 </div>
                                 <div style="display: flex; flex-direction: row; line-height: 1.3; padding-left: 1px; padding-right: 8px; align-items: center;">
                                     <div style="flex: 1;">Modus</div>
                                     <div style="color: #d7cec1; font-size: 14px; font-family: RobotoCondensed-LightItalic; text-align: right;">${myHelper().getCommonPropertyIfExist(obj, 'mode', '-')}</div>
                                 </div>`
      
                 let statusBarColor = farbeAdapterNichtAktiv;
                 let status = 3;
      
                 if (myHelper().getStateValueIfExist(adapterAliveList[i]) === 'true') {
                     statusBarColor = farbeAdapterAktiv;
                     status = 0;
      
                     if (existsState(id.replace('system.adapter.', '') + '.info.connection')) {
                         if (!getState(id.replace('system.adapter.', '') + '.info.connection').val) {
                             statusBarColor = farbeAdapterNichtVerbunden;
                             status = 4;
                         }
                     } else {
                         if (myHelper().getStateValueIfExist(adapterAliveList[i].replace('.alive', '.connected')) === 'false') {
                             statusBarColor = farbeAdapterNichtVerbunden;
                             status = 4;
                         }
                     }
                 }
      
                 if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'schedule') {
                     // Adapter ist zeitgesteuert
                     statusBarColor = farbeAdapterZeitgesteuert;
                     status = 1;
                 }
      
                 if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'extension') {
                     // Adapter ist Extension
                     statusBarColor = farbeAdapterErweiterung;
                     status = 1;
                 }
      
                 if (myHelper().getCommonPropertyIfExist(obj, 'mode') === 'once') {
                     // Adapter wird mit System gestartet
                     statusBarColor = farbeAdapterSystem;
                     status = 1;
                 }
      
                 if (myHelper().getCommonPropertyIfExist(obj, 'enabled', false).toString() === 'false') {
                     // Adapter ist deaktiviert
                     statusBarColor = farbeAdapterDeaktiviert;
                     status = 2;
                 }
      
                 adapterList.push({
                     text: text,
                     subText: subText,
                     image: image,
                     listType: "buttonState",
                     objectId: dpAdapterRestart,
                     buttonStateValue: id,
                     statusBarColor: statusBarColor,
                     showValueLabel: false,
                     name: name,
                     mode: myHelper().getCommonPropertyIfExist(obj, 'mode'),
                     hasUpdates: hasUpdates,
                     cpu: parseFloat(myHelper().getStateValueIfExist(id + '.cpu', '0')),
                     memHeapTotal: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapTotal', '0')),
                     memHeapUsed: parseFloat(myHelper().getStateValueIfExist(id + '.memHeapUsed', '0')),
                     memRss: parseFloat(myHelper().getStateValueIfExist(id + '.memRss', '0')),
                     uptime: parseFloat(myHelper().getStateValueIfExist(id + '.uptime', 0)),
                     status: status,
                     lockEnabled: true
                 })
             }
      
             let sortMode = myHelper().getStateValueIfExist(dpSortMode, 'name');
      
             if (sortMode === 'name' || sortMode === 'mode') {
                 adapterList.sort(function (a, b) {
                     return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                 });
             } else if (sortMode === 'hasUpdates' || sortMode === 'cpu' || sortMode === 'memHeapTotal' || sortMode === 'memHeapUsed' || sortMode === 'memRss' || sortMode === 'uptime' || sortMode === 'status') {
                 adapterList.sort(function (a, b) {
                     return a[sortMode] == b[sortMode] ? 0 : +(a[sortMode] < b[sortMode]) || -1;
                 });
             } else {
                 // default: nach name sortieren
                 sortMode = 'name'
                 adapterList.sort(function (a, b) {
                     return a[sortMode].toLowerCase() == b[sortMode].toLowerCase() ? 0 : +(a[sortMode].toLowerCase() > b[sortMode].toLowerCase()) || -1;
                 });
             }
      
             // Filter: not connected, updates, deaktiviert, aktiviert
      
             let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
      
             if (filterMode && filterMode !== null && filterMode !== '') {
                 if (filterMode === 'hasUpdates') {
                     adapterList = adapterList.filter(function (item) {
                         return item.hasUpdates === true;
                     });
                 } else if (filterMode === 'notConnected') {
                     adapterList = adapterList.filter(function (item) {
                         return item.status === 4;
                     });
                 } else if (filterMode === 'deactivated') {
                     adapterList = adapterList.filter(function (item) {
                         return item.status === 2;
                     });
                 } else if (filterMode === 'activated') {
                     adapterList = adapterList.filter(function (item) {
                         return item.status <= 1;
                     });
                 }
             }
      
             let result = JSON.stringify(adapterList);
             if (existsState(dpList) && getState(dpList).val !== result) {
                 setState(dpList, result, true);
             } else {
                 setState(dpList, result, true);
             }
      
         } catch (err) {
             console.error(`[adapterStatus] error: ${err.message}, stack: ${err.stack}`);
         }
      }
      
      // Beim Staren des Skriptes Adapter Status abrufen
      adapterStatus();
      
      // Funktion um Adapter zu starten / neu starten
      on({ id: dpAdapterRestart }, function (obj) {
         var adapter = getObject(obj.state.val.toString());
      
         if (neustarten) {
             if (adapter.common && adapter.common.enabled === false) {
                 // Adapter deaktiviert -> starten
                 adapter.common.enabled = true;
             }
         } else {
             if (adapter.common && adapter.common.enabled) {
                 adapter.common.enabled = !adapter.common.enabled;
             } else {
                 adapter.common.enabled = true;
             }
         }
      
         setObject(obj.state.val, adapter);
         console.log(`${obj.state.val.replace('system.adapter.', '')} neugestartet`);
      });
      
      
      function resetSort() {
         let sortMode = myHelper().getStateValueIfExist(dpSortMode, null);
      
         if (sortResetAfter > 0) {
             setTimeout(function () {
                 if (sortMode !== null && sortMode === myHelper().getStateValueIfExist(dpSortMode, null)) {
                     setState(dpSortMode, sortReset);
                 }
             }, sortResetAfter * 1000);
         }
      }
      
      function resetFilter() {
         let filterMode = myHelper().getStateValueIfExist(dpFilterMode, null);
      
         if (filterResetAfter > 0) {
             setTimeout(function () {
                 if (filterMode !== null && filterMode === myHelper().getStateValueIfExist(dpFilterMode, null)) {
                     setState(dpFilterMode, '');
                 }
             }, filterResetAfter * 1000);
         }
      }
      
      function myHelper() {
         return {
             getStateValueIfExist: function (id, nullValue = undefined, prepand = '', append = '') {
                 if (existsState(id)) {
                     return prepand + getState(id).val + append;
                 } else {
                     return nullValue;
                 }
             },
             getCommonPropertyIfExist: function (object, prop, nullValue = undefined, prepand = '', append = '') {
                 if (myHelper().checkCommonPropertyExist(object, prop)) {
                     return prepand + object.common[prop] + append;
                 } else {
                     return nullValue;
                 }
             },
             checkCommonPropertyExist: function (object, prop) {
                 if (object && object.common && object.common[prop]) {
                     return true;
                 } else {
                     return false;
                 }
             }
         }
      }
      
      

      javascript.0	13:35:54.300	info	Start JavaScript script.js.Allerlei.Adapterliste-md (Javascript/js)
      javascript.0	13:35:54.519	warn	script.js.Allerlei.Adapterliste-md: More than 100 subscriptions registered. Check your script!
      javascript.0	13:35:54.556	info	script.js.Allerlei.Adapterliste-md: registered 161 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
      
      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #4

      @nashra nix von mir dabei

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      NashraN 1 Reply Last reply
      0
      • liv-in-skyL liv-in-sky

        @nashra nix von mir dabei

        NashraN Offline
        NashraN Offline
        Nashra
        Most Active Forum Testing
        wrote on last edited by
        #5

        @liv-in-sky sagte in 3 Skripte melden Fehler seit js 8.4.0:

        @nashra nix von mir dabei

        Hm, dachte es wäre von dir gewesen. Nur von wem war es jetzt :thinking_face:

        Gruß Ralf
        Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        liv-in-skyL 1 Reply Last reply
        0
        • ? A Former User

          @nashra

          Fuer die Scripte wo der depricated request benutzt wird, gibts schon Updates (schau mal im Tagesschau-Thread nach), das andere kannst du einfach umstellen, hilfen gibts hier im Forum schon einige dazu.

          Fuer dein letztes Script, wird anscheinend das NPM Modul nicht erkannt, einfach mal in die Einstellung im javascript Adapter gehen, und alle NPM Module, die mit einem Komma hintendran stehen, loeschen und neu eintragen.

          Dann klappt das alles wieder... :-)

          NashraN Offline
          NashraN Offline
          Nashra
          Most Active Forum Testing
          wrote on last edited by
          #6

          @ilovegym sagte in 3 Skripte melden Fehler seit js 8.4.0:

          @nashra

          Fuer dein letztes Script, wird anscheinend das NPM Modul nicht erkannt, einfach mal in die Einstellung im javascript Adapter gehen, und alle NPM Module, die mit einem Komma hintendran stehen, loeschen und neu eintragen.

          Dann klappt das alles wieder... :-)

          Nö, leider nicht aber es ist ja auch nur ein warn bis jetzt.

          Gruß Ralf
          Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          1 Reply Last reply
          0
          • NashraN Nashra

            @liv-in-sky sagte in 3 Skripte melden Fehler seit js 8.4.0:

            @nashra nix von mir dabei

            Hm, dachte es wäre von dir gewesen. Nur von wem war es jetzt :thinking_face:

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            wrote on last edited by
            #7

            @nashra meinst du das 3te? https://forum.iobroker.net/post/750477

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            NashraN 1 Reply Last reply
            0
            • liv-in-skyL liv-in-sky

              @nashra meinst du das 3te? https://forum.iobroker.net/post/750477

              NashraN Offline
              NashraN Offline
              Nashra
              Most Active Forum Testing
              wrote on last edited by
              #8

              @liv-in-sky sagte in 3 Skripte melden Fehler seit js 8.4.0:

              @nashra meinst du das 3te? https://forum.iobroker.net/post/750477

              Ja genau, das ist es. Also von @Scrounger
              Danke dir

              Gruß Ralf
              Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              D 1 Reply Last reply
              0
              • NashraN Nashra

                @liv-in-sky sagte in 3 Skripte melden Fehler seit js 8.4.0:

                @nashra meinst du das 3te? https://forum.iobroker.net/post/750477

                Ja genau, das ist es. Also von @Scrounger
                Danke dir

                D Offline
                D Offline
                denjo
                wrote on last edited by
                #9

                @nashra kann mir jemand sagen was das bedeuten soll:

                script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                
                liv-in-skyL mcm1957M 2 Replies Last reply
                0
                • D denjo

                  @nashra kann mir jemand sagen was das bedeuten soll:

                  script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                  
                  liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  wrote on last edited by
                  #10

                  @denjo

                  du musst deine request blöcke ändern - such mal im forum - ist voll damit

                  z.b. https://forum.iobroker.net/post/1159311

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  1 Reply Last reply
                  0
                  • D denjo

                    @nashra kann mir jemand sagen was das bedeuten soll:

                    script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                    
                    mcm1957M Online
                    mcm1957M Online
                    mcm1957
                    wrote on last edited by
                    #11

                    @denjo said in 3 Skripte melden Fehler seit js 8.4.0:

                    @nashra kann mir jemand sagen was das bedeuten soll:

                    script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                    

                    Bitte verwende die Suche - gibt gefühlte 100 Beiträge hier im Forum.

                    'request' wurde DEPRECATED (= abgekündigt). Das hast du ja auch im Changelog den du bei einem MAJOTR Update immer lesen solltest ja gelesen :-).

                    Du musst dein Scrip anpassen.

                    Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
                    Support Repositoryverwaltung.

                    Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

                    LESEN - gute Forenbeitrage

                    D 2 Replies Last reply
                    0
                    • mcm1957M mcm1957

                      @denjo said in 3 Skripte melden Fehler seit js 8.4.0:

                      @nashra kann mir jemand sagen was das bedeuten soll:

                      script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                      

                      Bitte verwende die Suche - gibt gefühlte 100 Beiträge hier im Forum.

                      'request' wurde DEPRECATED (= abgekündigt). Das hast du ja auch im Changelog den du bei einem MAJOTR Update immer lesen solltest ja gelesen :-).

                      Du musst dein Scrip anpassen.

                      D Offline
                      D Offline
                      denjo
                      wrote on last edited by
                      #12

                      @mcm1957 habs, thanks

                      1 Reply Last reply
                      0
                      • mcm1957M mcm1957

                        @denjo said in 3 Skripte melden Fehler seit js 8.4.0:

                        @nashra kann mir jemand sagen was das bedeuten soll:

                        script.js.Test.Tagesschau: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                        

                        Bitte verwende die Suche - gibt gefühlte 100 Beiträge hier im Forum.

                        'request' wurde DEPRECATED (= abgekündigt). Das hast du ja auch im Changelog den du bei einem MAJOTR Update immer lesen solltest ja gelesen :-).

                        Du musst dein Scrip anpassen.

                        D Offline
                        D Offline
                        denjo
                        wrote on last edited by
                        #13

                        @mcm1957 jetzt hab ich seid gestern immer diese meldung, kann da leider nix mit anfangen:

                        
                        javascript.0
                        2024-06-20 13:08:02.016	error	script.js.Test.Tagesschau_neu: timeout of 2000ms exceeded
                        
                        javascript.0
                        2024-06-20 13:08:02.014	error	script.js.Test.Tagesschau_neu: timeout of 2000ms exceeded
                        
                        HomoranH 1 Reply Last reply
                        0
                        • D denjo

                          @mcm1957 jetzt hab ich seid gestern immer diese meldung, kann da leider nix mit anfangen:

                          
                          javascript.0
                          2024-06-20 13:08:02.016	error	script.js.Test.Tagesschau_neu: timeout of 2000ms exceeded
                          
                          javascript.0
                          2024-06-20 13:08:02.014	error	script.js.Test.Tagesschau_neu: timeout of 2000ms exceeded
                          
                          HomoranH Do not disturb
                          HomoranH Do not disturb
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #14

                          @denjo sagte in 3 Skripte melden Fehler seit js 8.4.0:

                          kann da leider nix mit anfangen:

                          das kann niemand ohne das Skript zu sehen.

                          Glaskugel meint: als erste Lösung mal den Timeout auf 3000 setzen

                          kein Support per PN! - Fragen im Forum stellen -

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          ioBroker freut sich über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          D 1 Reply Last reply
                          0
                          • HomoranH Homoran

                            @denjo sagte in 3 Skripte melden Fehler seit js 8.4.0:

                            kann da leider nix mit anfangen:

                            das kann niemand ohne das Skript zu sehen.

                            Glaskugel meint: als erste Lösung mal den Timeout auf 3000 setzen

                            D Offline
                            D Offline
                            denjo
                            wrote on last edited by
                            #15

                            @homoran sorry ich hatte das script hier aus den Forum, mit java kenne ich mich leider nicht aus?

                            /* VIS Tagesschau_Link
                            parsed die Seite https://www.tagesschau.de/100sekunden/ und sucht nach der URL zum aktuellsten Video
                            {1}
                            02.03.2016 erstellt von pix
                            15.03.2016 zu Javascript Instanz 1 gewechselt
                            24.09.2016 umbenannt in VIS_Link_Tagesschau
                            11.11.2018 Skript angepasst und optimiert
                            03.05.2021 Skript an neue Tagesschau-Seite angepasst und optimiert
                            */
                             
                             
                            const logging = true;
                            const idURL = '0_userdata.0.Tagesschau_100';
                            const idURL2 = '0_userdata.0.Tagesschau_Stream';
                            const link = 'http://www.tagesschau.de/multimedia/sendung/tagesschau_in_100_sekunden/';
                            let film_url; let stream_url;
                             
                             
                            function findeURL () {   
                               try {
                                    httpGet(link, { responseType: 'text' }, (error, response) => { 
                                        if (!error && response.statusCode == 200) {
                                           let regexp = /media\.tagesschau\.de\/video\/\d*\/\d*\/TV-\d*-\d*-\d*\.webxl\.h264\.mp4/gm;
                                           let result_arr = regexp.exec(response.data);
                                           film_url = result_arr[0];
                                           setState(idURL, "https://" + film_url);
                                           if (logging) log ("URL: " + "https://" + film_url);
                                        } else { 
                                            log(error, 'error'); 
                                        } 
                                    });
                                } catch (fehler) {
                                    log("Fehler (try): " + fehler, "error");
                                }
                                    // nicht schön, aber nochmal für Stream
                               try {
                                    //Tagesschau Stream als HTML
                                    const link = "https://www.tagesschau.de/multimedia/livestreams/";
                                    httpGet(link, { responseType: 'text' }, (error, response) => { 
                                        if (!error && response.statusCode == 200) {
                                           stream_url = "https://www.tagesschau.de/multimedia/livestreams/index~player.html";
                                           setState(idURL2, stream_url);
                                           if (logging) log ("HTML: " + stream_url);
                                        } else { 
                                            log(error, 'error'); 
                                        } 
                                    });
                                } catch (fehler) {
                                    log("Fehler (try): " + fehler, "error");
                                }
                            } 
                             
                            schedule("8 */1 * * *", findeURL); // jedeStunde um 8 nach voll
                            findeURL();
                            
                            ? 1 Reply Last reply
                            0
                            • D denjo

                              @homoran sorry ich hatte das script hier aus den Forum, mit java kenne ich mich leider nicht aus?

                              /* VIS Tagesschau_Link
                              parsed die Seite https://www.tagesschau.de/100sekunden/ und sucht nach der URL zum aktuellsten Video
                              {1}
                              02.03.2016 erstellt von pix
                              15.03.2016 zu Javascript Instanz 1 gewechselt
                              24.09.2016 umbenannt in VIS_Link_Tagesschau
                              11.11.2018 Skript angepasst und optimiert
                              03.05.2021 Skript an neue Tagesschau-Seite angepasst und optimiert
                              */
                               
                               
                              const logging = true;
                              const idURL = '0_userdata.0.Tagesschau_100';
                              const idURL2 = '0_userdata.0.Tagesschau_Stream';
                              const link = 'http://www.tagesschau.de/multimedia/sendung/tagesschau_in_100_sekunden/';
                              let film_url; let stream_url;
                               
                               
                              function findeURL () {   
                                 try {
                                      httpGet(link, { responseType: 'text' }, (error, response) => { 
                                          if (!error && response.statusCode == 200) {
                                             let regexp = /media\.tagesschau\.de\/video\/\d*\/\d*\/TV-\d*-\d*-\d*\.webxl\.h264\.mp4/gm;
                                             let result_arr = regexp.exec(response.data);
                                             film_url = result_arr[0];
                                             setState(idURL, "https://" + film_url);
                                             if (logging) log ("URL: " + "https://" + film_url);
                                          } else { 
                                              log(error, 'error'); 
                                          } 
                                      });
                                  } catch (fehler) {
                                      log("Fehler (try): " + fehler, "error");
                                  }
                                      // nicht schön, aber nochmal für Stream
                                 try {
                                      //Tagesschau Stream als HTML
                                      const link = "https://www.tagesschau.de/multimedia/livestreams/";
                                      httpGet(link, { responseType: 'text' }, (error, response) => { 
                                          if (!error && response.statusCode == 200) {
                                             stream_url = "https://www.tagesschau.de/multimedia/livestreams/index~player.html";
                                             setState(idURL2, stream_url);
                                             if (logging) log ("HTML: " + stream_url);
                                          } else { 
                                              log(error, 'error'); 
                                          } 
                                      });
                                  } catch (fehler) {
                                      log("Fehler (try): " + fehler, "error");
                                  }
                              } 
                               
                              schedule("8 */1 * * *", findeURL); // jedeStunde um 8 nach voll
                              findeURL();
                              
                              ? Offline
                              ? Offline
                              A Former User
                              wrote on last edited by
                              #16

                              @denjo

                              das wurde in dem entsprechenden Thread schon geloest:
                              https://forum.iobroker.net/post/1161793

                              D 1 Reply Last reply
                              0
                              • ? A Former User

                                @denjo

                                das wurde in dem entsprechenden Thread schon geloest:
                                https://forum.iobroker.net/post/1161793

                                D Offline
                                D Offline
                                denjo
                                wrote on last edited by denjo
                                #17

                                @ilovegym könntest du es mir erklären ich steh etwas auf dem schlauch?

                                muss ich das "https://" oder "http://" im script ändern??

                                ? 1 Reply Last reply
                                0
                                • D denjo

                                  @ilovegym könntest du es mir erklären ich steh etwas auf dem schlauch?

                                  muss ich das "https://" oder "http://" im script ändern??

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #18

                                  @denjo

                                  neee, warum? Wenn du die aktuelle Version des Scripts hast, dann sollte die auch funktionieren.
                                  Welche Version des javascript-Adapters?

                                  Der Fehler sagt ja, dass ein Timeout nach 2000ms kommt... also waere die Addresse nicht zu erreichen..??

                                  D 1 Reply Last reply
                                  0
                                  • ? A Former User

                                    @denjo

                                    neee, warum? Wenn du die aktuelle Version des Scripts hast, dann sollte die auch funktionieren.
                                    Welche Version des javascript-Adapters?

                                    Der Fehler sagt ja, dass ein Timeout nach 2000ms kommt... also waere die Addresse nicht zu erreichen..??

                                    D Offline
                                    D Offline
                                    denjo
                                    wrote on last edited by
                                    #19

                                    @ilovegym v. 8.3.1 und ja habe das letzte script aus dem Thread genommen.

                                    ? 1 Reply Last reply
                                    0
                                    • D denjo

                                      @ilovegym v. 8.3.1 und ja habe das letzte script aus dem Thread genommen.

                                      ? Offline
                                      ? Offline
                                      A Former User
                                      wrote on last edited by
                                      #20

                                      @denjo glaub in der Version war genau da auch ein Fehler drin.. ist in den neueren Versionen behoben.. also entweder warten, bis eine stable ist, oder die aktuelle latest installieren..oder mit den timeout-error leben.. das macht ja nix kaputt...

                                      D 1 Reply Last reply
                                      1
                                      • ? A Former User

                                        @denjo glaub in der Version war genau da auch ein Fehler drin.. ist in den neueren Versionen behoben.. also entweder warten, bis eine stable ist, oder die aktuelle latest installieren..oder mit den timeout-error leben.. das macht ja nix kaputt...

                                        D Offline
                                        D Offline
                                        denjo
                                        wrote on last edited by
                                        #21

                                        @ilovegym ja alles gut, dann weiß ich das es nicht an mir liegt. danke

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        593

                                        Online

                                        32.7k

                                        Users

                                        82.5k

                                        Topics

                                        1.3m

                                        Posts
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Home
                                        • Recent
                                        • Tags
                                        • Unread 0
                                        • Categories
                                        • Unreplied
                                        • Popular
                                        • GitHub
                                        • Docu
                                        • Hilfe