Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Oli

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    O
    • Profile
    • Following 0
    • Followers 0
    • Topics 20
    • Posts 1120
    • Best 56
    • Groups 3

    Oli

    @Oli

    Starter

    66
    Reputation
    326
    Profile views
    1120
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Oli Follow
    Pro Starter Most Active

    Best posts made by Oli

    • RE: Lebensmittelwarnung.de

      @skokarl , @crunchip ,

      das ist ein zusätzliches Script, lade es hier mal hoch.

      /*VIS Lebensmittelwarnungen
      
      Bringt einen RSS-Feed als Tabelle in ioBroker
      setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
      
      
      erstellt: 11.05.2017 von Torsten (auf Basis von Bluefox Code und Pix) 
      */
      
      var idFeedTabelle = 'RSS-Feed.Lebensmittelwarnungen.Tabelle';
      
      var forceCreation = false;
          
      createState(idFeedTabelle, '', forceCreation, {
          write: true,
          read: true,
          name: 'RSS Feed Lebensmittelwarnungen Tabelle',
          type: 'string',
          desc: 'Lebensmittelwarnungen RSS Feed als HTML Tabelle',
          role: 'html'
      });
      
      var link = 'https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/feed/alle/bayern.rss';
      
      var quer = false ;
      
      function RSS_einlesen () {
          var parseString = require('xml2js').parseString;
          var request = require('request');
      
          request(link, function (error, response, body) {
              if (!error && response.statusCode == 200) {
          
                  parseString(body, {
                      explicitArray: false,
                      mergeAttrs: true
                  },
                  function (err, result) {
                      //log(JSON.stringify(result, null, 2));
                      if (err) {
                          log("Fehler: " + err, 'error');
                      } else {    
                          var tabelle;
                          if (quer) {
                              // Titel links, Inhalt rechts
                              tabelle ='<table class="rss_feed"><thead><tr><th>Titel</th><th>Beschreibung</th></tr></thead><tbody>';
                              for (var i = 0; i <result.rss.channel.item.length; i++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '</td></tr>';
                              }
                          } else {
                              // Titel oben, INhalt darunter (wie in der Zeitung)
                              tabelle ='<table class="rss_feed"><thead><tr><th>RSS-Feed</th></tr></thead><tbody>';
                              for (var j = 0; j <result.rss.channel.item.length; j++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[j].title + '</td></tr><tr><td>' + result.rss.channel.item[j].description + '</td></tr>';
                              }
                          }
                          tabelle += '</tbody></table>';  
                          setState(idFeedTabelle, tabelle);
                      }
                  });
              } else  {
                  log(error, 'error');
              }
          });   // Ende request 
          log('RSS-Feed ' + link + ' eingelesen');
      }
      
      schedule("*/10 * * * *", RSS_einlesen);  // alle 10 Minuten
      RSS_einlesen();
      

      und hier meine Vis:


      {
      "settings": {
      "style": {
      "background-color": "#27272727"
      },
      "theme": "dark-hive",
      "sizex": "800",
      "sizey": "600",
      "gridSize": "",
      "useBackground": false,
      "snapType": null
      },
      "widgets": {
      "e00001": {
      "tpl": "tplHtml",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": false,
      "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,
      "name": "!_Linie-Links"
      },
      "style": {
      "left": "358px",
      "top": "43px",
      "width": "212px",
      "height": "2px",
      "background": "linear-gradient(to right, #282828 5px, white 200px )",
      "z-index": 4
      },
      "widgetSet": "basic"
      },
      "e00002": {
      "tpl": "tplHtml",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": false,
      "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,
      "name": "!_Linie-Rechts"
      },
      "style": {
      "left": "570px",
      "top": "43px",
      "width": "212px",
      "height": "2px",
      "background": "linear-gradient(to left, #282828 5px, white 200px )",
      "z-index": 4
      },
      "widgetSet": "basic"
      },
      "e00003": {
      "tpl": "tplValueString",
      "data": {
      "oid": "",
      "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,
      "html_append": "",
      "locked": false,
      "name": "Bezeichnung",
      "html_prepend": "Alle Produktwarnungen"
      },
      "style": {
      "left": "348px",
      "top": "22px",
      "width": "444px",
      "height": "18px",
      "color": "#8f8f8f",
      "z-index": "3",
      "text-align": "center"
      },
      "widgetSet": "basic"
      },
      "e00004": {
      "tpl": "tplFrame",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": true,
      "g_css_background": true,
      "g_css_shadow_padding": true,
      "g_css_border": true,
      "g_gestures": false,
      "g_signals": false,
      "g_last_change": false,
      "visibility-cond": "==",
      "visibility-val": 1,
      "visibility-groups-action": "hide",
      "title": "",
      "title_color": "#FFFFFF",
      "title_top": "-10",
      "title_left": "30",
      "header_height": "0",
      "header_color": "",
      "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,
      "title_back": "",
      "title_font": "",
      "locked": false,
      "name": "Hintergrund"
      },
      "style": {
      "left": "348px",
      "top": "15px",
      "width": "444px",
      "height": "575px",
      "color": "",
      "z-index": 0,
      "border-radius": "10px",
      "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
      "background": "#202020",
      "border-color": "#2d2d2d"
      },
      "widgetSet": "basic"
      },
      "e00005": {
      "tpl": "tplHtml",
      "data": {
      "visibility-cond": "==",
      "visibility-val": "1",
      "refreshInterval": "0",
      "html": "{javascript.0.RSS-Feed.Lebensmittelwarnungen.Tabelle}",
      "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,
      "visibility-oid": "",
      "class": "mdui-table mdui-table-striped",
      "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,
      "views": [
      "Notdienst"
      ]
      },
      "style": {
      "left": "365px",
      "top": "54px",
      "z-index": "20",
      "width": "415px",
      "height": "526px",
      "color": "#8f8f8f",
      "overflow-x": "",
      "overflow-y": "auto",
      "font-family": "",
      "font-size": "small",
      "background": "#2e2e2e",
      "border-radius": "10px",
      "box-shadow": ""
      },
      "widgetSet": "basic"
      },
      "e00006": {
      "tpl": "tplFrame",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": true,
      "g_css_background": true,
      "g_css_shadow_padding": true,
      "g_css_border": true,
      "g_gestures": false,
      "g_signals": false,
      "g_last_change": false,
      "visibility-cond": "==",
      "visibility-val": 1,
      "visibility-groups-action": "hide",
      "title": "",
      "title_color": "#FFFFFF",
      "title_top": "-10",
      "title_left": "30",
      "header_height": "0",
      "header_color": "",
      "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,
      "title_back": "",
      "title_font": "",
      "locked": false,
      "name": "Hintergrund"
      },
      "style": {
      "left": "5px",
      "top": "15px",
      "width": "330px",
      "height": "575px",
      "color": "",
      "z-index": 0,
      "border-radius": "10px",
      "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
      "background": "#202020",
      "border-color": "#2d2d2d"
      },
      "widgetSet": "basic"
      },
      "e00007": {
      "tpl": "tplValueString",
      "data": {
      "oid": "javascript.0.Lebensmittelwarnung.Nummer_0.Datum",
      "g_fixed": false,
      "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
      },
      "style": {
      "left": "15px",
      "top": "56px",
      "color": "#0b6bef",
      "width": "183px",
      "height": "20px",
      "font-size": "medium"
      },
      "widgetSet": "basic"
      },
      "e00008": {
      "tpl": "tplValueString",
      "data": {
      "oid": "javascript.0.Lebensmittelwarnung.Nummer_0.Produktart",
      "g_fixed": false,
      "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,
      "html_prepend": "Produktart: "
      },
      "style": {
      "left": "13px",
      "top": "85px",
      "color": "#8f8f8f",
      "width": "307px",
      "height": "20px",
      "font-size": "small"
      },
      "widgetSet": "basic"
      },
      "e00009": {
      "tpl": "tplValueString",
      "data": {
      "oid": "javascript.0.Lebensmittelwarnung.Nummer_0.Titel",
      "g_fixed": false,
      "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,
      "html_prepend": "Titel: "
      },
      "style": {
      "left": "15px",
      "top": "111px",
      "color": "#ee1111",
      "font-size": "x-small",
      "width": "310px",
      "height": "74px"
      },
      "widgetSet": "basic"
      },
      "e00010": {
      "tpl": "tplHtml",
      "data": {
      "g_fixed": false,
      "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",
      "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": "<table><tr>\n<td>{javascript.0.Lebensmittelwarnung.Nummer_0.Beschreibung}</td>\n</tr>\n</table>"
      },
      "style": {
      "left": "14px",
      "top": "193px",
      "color": "#8f8f8f",
      "font-size": "x-small",
      "width": "311px",
      "height": "239px"
      },
      "widgetSet": "basic"
      },
      "e00011": {
      "tpl": "tplImage",
      "data": {
      "g_fixed": false,
      "g_visibility": false,
      "g_css_font_text": false,
      "g_css_background": false,
      "g_css_shadow_padding": false,
      "g_css_border": true,
      "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,
      "src": "{javascript.0.Lebensmittelwarnung.Nummer_0.Produktbild}",
      "stretch": true
      },
      "style": {
      "left": "113px",
      "top": "448px",
      "width": "133px",
      "height": "135px",
      "border-radius": "10px"
      },
      "widgetSet": "basic"
      },
      "e00012": {
      "tpl": "tplValueString",
      "data": {
      "oid": "",
      "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,
      "html_append": "",
      "locked": false,
      "name": "Bezeichnung",
      "html_prepend": "Aktuellste Produktwarnung"
      },
      "style": {
      "left": "5px",
      "top": "22px",
      "width": "330px",
      "height": "18px",
      "color": "#8f8f8f",
      "z-index": "3",
      "text-align": "center"
      },
      "widgetSet": "basic"
      },
      "e00013": {
      "tpl": "tplHtml",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": false,
      "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,
      "name": "!_Linie-Rechts"
      },
      "style": {
      "left": "175px",
      "top": "43px",
      "width": "160px",
      "height": "2px",
      "background": "linear-gradient(to left, #282828 5px, white 200px )",
      "z-index": 4
      },
      "widgetSet": "basic"
      },
      "e00014": {
      "tpl": "tplHtml",
      "data": {
      "g_fixed": true,
      "g_visibility": false,
      "g_css_font_text": false,
      "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,
      "name": "!_Linie-Links"
      },
      "style": {
      "left": "15px",
      "top": "43px",
      "width": "160px",
      "height": "2px",
      "background": "linear-gradient(to right, #282828 5px, white 200px )",
      "z-index": 4
      },
      "widgetSet": "basic"
      },
      "e00015": {
      "tpl": "tplMetroTileState",
      "data": {
      "visibility-cond": "==",
      "visibility-val": "true",
      "hover": false,
      "transform": true,
      "bg_class_false": "bg-red",
      "bg_class_true": "bg-red",
      "icon_class_false": "",
      "icon_class_true": "",
      "icon_badge_false": "",
      "icon_badge_true": "",
      "badge_bg_class_false": "",
      "badge_bg_class_true": "",
      "brand_bg_class_false": "",
      "brand_bg_class_true": "",
      "badge_top": "0",
      "badge_left": "0",
      "gestures-offsetX": 0,
      "gestures-offsetY": 0,
      "state_oid": "javascript.0.Lebensmittelwarnung.neue_Warnung",
      "value": "false",
      "icon_false": "/icons-material-png/navigation/ic_close_white_128dp.png",
      "icon_true": "/icons-material-png/navigation/ic_close_white_128dp.png",
      "icon_width": "",
      "icon_left": "56",
      "icon_height": "",
      "icon_top": "",
      "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,
      "name": "Blättern",
      "visibility-groups-action": "hide",
      "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,
      "visibility-oid": "javascript.0.Lebensmittelwarnung.neue_Warnung"
      },
      "style": {
      "left": "17px",
      "top": "527px",
      "height": "50px",
      "padding": "0px",
      "width": "50px",
      "border-radius": "10px",
      "border-color": "#2d2d2d",
      "border-style": "solid",
      "border-width": "1px",
      "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
      "z-index": 3
      },
      "widgetSet": "metro"
      },
      "e00016": {
      "tpl": "tplMetroTileState",
      "data": {
      "visibility-cond": "==",
      "visibility-val": "false",
      "hover": false,
      "transform": true,
      "bg_class_false": "bg-emerald",
      "bg_class_true": "bg-emerald",
      "icon_class_false": "",
      "icon_class_true": "",
      "icon_badge_false": "",
      "icon_badge_true": "",
      "badge_bg_class_false": "",
      "badge_bg_class_true": "",
      "brand_bg_class_false": "",
      "brand_bg_class_true": "",
      "badge_top": "0",
      "badge_left": "0",
      "gestures-offsetX": 0,
      "gestures-offsetY": 0,
      "state_oid": "javascript.0.Lebensmittelwarnung.neue_Warnung",
      "value": "true",
      "icon_false": "/icons-material-png/navigation/ic_check_white_12dp.png",
      "icon_true": "/icons-material-png/navigation/ic_check_white_12dp.png",
      "icon_width": "",
      "icon_left": "56",
      "icon_height": "",
      "icon_top": "",
      "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,
      "name": "Blättern",
      "visibility-groups-action": "hide",
      "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,
      "visibility-oid": "javascript.0.Lebensmittelwarnung.neue_Warnung"
      },
      "style": {
      "left": "17px",
      "top": "527px",
      "height": "50px",
      "padding": "0px",
      "width": "50px",
      "border-radius": "10px",
      "border-color": "#2d2d2d",
      "border-style": "solid",
      "border-width": "1px",
      "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
      "z-index": 3
      },
      "widgetSet": "metro"
      }
      },
      "name": "172_Produktwarnung",
      "filterList": []
      }

      posted in Entwicklung
      O
      Oli
    • RE: Ölpreis

      Hallo zusammen,

      nachdem ich aus dem Forum schon sehr viel Hilfe bekommen habe, will ich euch hiermit meine Version der Heizölpreisabfrage vorstellen.

      Das Grundscript passiert auf dem Script von @pix, hierfür nochmal herzlich Dank fürs erstellen.

      Als Quelle dient mir esyoil.com.

      Bild aus meiner Vis:
      b16258fe-857e-459b-b969-f6af965c90e5-image.png

      Folgende Scrips habe ich im Einsatz:

      1. Erstellen der Grunddaten für die Bestellung und Erstellung des Abfragelinks
      /* Ölpreis abfragen
      Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
      am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
      Quelle: heizoel24.de
      Basis: solar-wetter Skript
      {1}
      erstellt: 03.08.2016 von pix
      12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
      29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
      {2}
      Angepasst am 14.07.2019 von Oliver Böhm, verwendet für "Bestelldaten für Heizölbestellung eintragen"
      */
       
      var logging = false;
      var liefermenge = "5000";                                       //Bestellmenge eintragen
      var lieferort = "90530";                                        //PLZ eintragen
      var entladestellen = "1";                                       //Entladestellen eintragen (Auswahlmöglichkeiten: 1-9)
      var heizölsorte = "Normal Schwefelarm";                         //Heizölsorte eintragen (Auswahlmöglichkeiten: Normal Schwefelarm, Premium Schwefelarm, Klimaneutral)
      var zahlart = "Rechnung";                                       //Bezahlart eintragen (Auswahlmöglichkeiten: Barzahlung, EC-Karte, Lastschrift, Ratenkauf, Rechnung, Vorkasse, Wärmekonto)
      
      var link = 'http://www.heizoel24.de/heizoelpreise';
       
      // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
      var request = require('request');
      var idheizöl;
      var idzahlart;
      var idLiter          =   'Heizoel.Bestelldaten.Liefermenge',
          idPLZ            =   'Heizoel.Bestelldaten.Lieferort',
          idEntladestellen =   'Heizoel.Bestelldaten.Entladestellen',
          idHeizölsorte    =   'Heizoel.Bestelldaten.Heizölsorte',
          idBezahlung      =   'Heizoel.Bestelldaten.Zahlungsart',
          idLink           =   'Heizoel.Bestelldaten.Weblink';   
         
      createState(idLiter, {
         name: 'Liefermenge',
         desc: 'Liefermenge',
         type: 'string',
         unit: ' '
      });
      createState(idPLZ, {
         name: 'Lieferort',
         desc: 'Lieferort',
         type: 'string',
         unit: ' '
      });
      
      createState(idEntladestellen, {
         name: 'Entladestellen',
         desc: 'Entladestellen',
         type: 'string',
         unit: ' '
      });
      
      createState(idHeizölsorte, {
         name: 'Heizölsorte',
         desc: 'Heizölsorte',
         type: 'string',
         unit: ' '
      });
      
      createState(idBezahlung, {
         name: 'Bezahlart',
         desc: 'Bezahlart',
         type: 'string',
         unit: ' '
      });
      
      createState(idLink, {
         name: 'Weblink von esyoil',
         desc: 'Weblink von esyoil',
         type: 'string',
         unit: ' '
      });
       
      function findLink () {   
         if (heizölsorte == "Normal Schwefelarm") {
            idheizöl = "8";                    
          } else if (heizölsorte == "Premium Schwefelarm") {
            idheizöl = "4";                    
          } else if (heizölsorte == "Klimaneutral") {
            idheizöl = "9";                  
          }    
         
         if (zahlart == "Barzahlung") {
            idzahlart = "1";                    
          } else if (zahlart == "EC-Karte") {
            idzahlart = "2";                    
          } else if (zahlart == "Lastschrift") {
            idzahlart = "4";                  
          } else if (zahlart == "Ratenkauf") {
            idzahlart = "10";                  
          } else if (zahlart == "Rechnung") {
            idzahlart = "6";                  
          } else if (zahlart == "Vorkasse") {
            idzahlart = "3";                  
          } else if (zahlart == "Wärmekonto") {
            idzahlart = "5";                  
          }
      
          // Erstellung des Abfragelinks
          var url = 'https://www.esyoil.com/'  
                   + '?calc%5Bzipcode%5D='          + lieferort
                   + '&calc%5Bamount%5D='           + liefermenge
                   + '&calc%5Bunloading_points%5D=' + entladestellen
                   + '&calc%5Bprod%5D='             + idheizöl
                   + '&calc%5Bpayment_type%5D='     + idzahlart 
                   + '&calc%5Bexpress%5D=0&calc%5Bdelivery_date_sel%5D=&calc%5Bhose%5D=40m&calc%5Bshort_vehicle%5D=&calc%5Bsubmit%5D='         // driving = default
                                 
         setState(idLink, url);                                           // Wert in Objekt schreiben
         setState(idBezahlung, zahlart);                                  // Wert in Objekt schreiben
         setState(idLiter, liefermenge);                                  // Wert in Objekt schreiben
         setState(idPLZ, lieferort);                                      // Wert in Objekt schreiben
         setState(idEntladestellen, entladestellen);                      // Wert in Objekt schreiben
         setState(idHeizölsorte, heizölsorte);                            // Wert in Objekt schreiben
      }
       
      function leseWebseite () {
         try {
             request(link, function (error, response, body) {
                 if (!error && response.statusCode == 200) {              // kein Fehler, Inhalt in body
                     findLink ();                              
                     log('Heizöl-Preis von heizoel24.de eingelesen');
                 } else log(error,'error');                               // Error beim Einlesen
             });
         } catch (e) {
             log('Fehler (try) leseWebseite: ' + e, 'error');
         }   
      }
       
      // bei Skriptstart
      leseWebseite(); 
      
      
      1. Abfrage vom Heizölpreis am Wohnort:
      /* Ölpreis abfragen
      Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
      am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
      Quelle: heizoel24.de
      Basis: solar-wetter Skript
      {1}
      erstellt: 03.08.2016 von pix
      12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
      29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
      {2}
      Angepasst am 14.07.2019 von Oliver Böhm, verwendet für "Heizölpreis für Wohnort abfragen"
      Quelle:  www.esyoil.com
      */
       
      var logging = false;
      var link = getState('javascript.0.Heizoel.Bestelldaten.Weblink').val;
       
      // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
      var request = require('request');
      var price;
      var priceLB;
      var MwStG;
      var MwStL;
      var idPriceGB     =   'Heizoel.Heizölpreis.Wohnort.Gesamt.Bruttopreis Gesamt',
          idPriceLB     =   'Heizoel.Heizölpreis.Wohnort.Je 100L.Bruttopreis 100l',
          idMwStL       =   'Heizoel.Heizölpreis.Wohnort.Je 100L.MwSt 100l',
          idMwStG       =   'Heizoel.Heizölpreis.Wohnort.Gesamt.MwSt Gesamt',
          idZuschlagN   =   'Heizoel.Heizölpreis.Wohnort.Je 100L.Nettozuschlag 100l',
          idZuschlagGN  =   'Heizoel.Heizölpreis.Wohnort.Gesamt.Nettozuschlag Gesamt',
          idPriceLN     =   'Heizoel.Heizölpreis.Wohnort.Je 100L.Nettopreis 100l',
          idPriceGN     =   'Heizoel.Heizölpreis.Wohnort.Gesamt.Nettopreis Gesamt',
          idLieferant   =   'Heizoel.Lieferant.Name',
          idWebseite    =   'Heizoel.Lieferant.Webseite',
          idDate        =   'Heizoel.Datum';
         
      createState(idPriceGB, {
         name: 'Heizölpreis Gesamt Brutto',
         desc: 'Heizölpreis Gesamt Brutto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€'
      });
      
      createState(idPriceLB, {
         name: 'Heizölpreis je 100l Brutto',
         desc: 'Heizölpreis je 100l Brutto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€/100l'
      });
      
      createState(idMwStL, {
         name: 'Mehrwertsteuer je 100l',
         desc: 'Mehrwertsteuer je 100l für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€/100l'
      });
      
      createState(idMwStG, {
         name: 'Mehrwertsteuer Gesamt',
         desc: 'Mehrwertsteuer Gesamt für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€'
      });
      
      createState(idZuschlagN, {
         name: 'Zuschlag je 100l Netto',
         desc: 'Zuschlag je 100l Netto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€/100l'
      });
      
      createState(idZuschlagGN, {
         name: 'Zuschlag Gesamt Netto',
         desc: 'Zuschlag Gesamt Netto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€'
      });
      
      createState(idPriceLN, {
         name: 'Heizölpreis je 100l Netto',
         desc: 'Heizölpreis je 100l Netto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€/100l'
      });
      
      createState(idPriceGN, {
         name: 'Heizölpreis Gesamt Netto',
         desc: 'Heizölpreis Gesamt Netto für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€'
      });
      
      createState(idLieferant, {
         name: 'Lieferant',
         desc: 'Lieferant für heute',
         type: 'string',
         unit: ' '
      });
      
      createState(idWebseite, {
         name: 'esyoil.com Webseite von Lieferant',
         desc: 'esyoil.com Webseite von Lieferant',
         type: 'string',
         unit: ' '
      });
      
      createState(idDate, {
         name: 'Datum',
         desc: 'Heizölpreis Zeitstempel (als String)',
         type: 'string',
         def: ''
      });
       
      function extractText(body,text1,text2) {
         var start = body.indexOf(text1) + text1.length;
         var ende = body.indexOf(text2,start);
         if (logging) log('Startposition: ' + start);
         if (logging) log('Endposition: ' + ende);
         var zwischenspeicher;
         if (((start != -1) && (ende != -1)) && (start<ende)) {                                                       // Fehler abfangen
             zwischenspeicher = body.slice(start,ende);
             zwischenspeicher = zwischenspeicher.trim();
             if (logging) log(zwischenspeicher);
             return(zwischenspeicher);
         } else {
             zwischenspeicher = 'Fehler beim Ausschneiden';
             log(zwischenspeicher, 'error');
             return(0);
         }
      }
       
      function findPrice (body) {   
         var text1 = '<li class="total_price_brutto">',                                                               // erstes Auftauchen
             text2 = '&thinsp;&euro;</li>';                                                                           // erstes Auftauchen
         price = extractText(body,text1,text2); 
         var price_array = price.split('.');
         price = price_array[0] + price_array[1];     
         price_array = price.split(',');
         price = price_array[0] + '.' + price_array[1];
         price = parseFloat(price);
         priceLB = price / 50;
         priceLB = priceLB.toFixed(2);   
         MwStG = price / 119 * 19;
         MwStG = MwStG.toFixed(2);   
         MwStL = priceLB / 119 * 19;
         MwStL = MwStL.toFixed(2);
         if (logging) log('Heizöl Preis: ' + price + ' EUR');
      
         setState(idPriceLB, priceLB);
         setState(idPriceGB, parseFloat(price,10));
         setState(idMwStG, MwStG);                                                                                    // Wert in Objekt schreiben
         setState(idMwStL, MwStL);                                                                                    // Wert in Objekt schreiben
      }
      
      function findZuschlag (body) {   
         var text1 = '<dd data-polyfill-hidden class="delivery-charge">+&nbsp;',                                      // erstes Auftauchen
             text2 = '<dt data-polyfill-hidden class="vat">';                                                         // erstes Auftauchen
         var zuschlag = extractText(body,text1,text2);
         var zuschlagLN = zuschlag.replace("&nbsp;€</dd>","");
         var zuschlag_array = zuschlagLN.split(',');
         zuschlagLN = zuschlag_array[0] + '.' + zuschlag_array[1];   
         setState(idZuschlagN, zuschlagLN);
         zuschlagLN = parseFloat(zuschlagLN);
         var zuschlagG = zuschlagLN * 50;
         zuschlagG = zuschlagG.toFixed(2);                                    
         var priceLN = priceLB - MwStL - zuschlagLN;
         priceLN = priceLN.toFixed(2);
         var priceGN = price - MwStG - zuschlagG;
         priceGN = priceGN.toFixed(2);   
         if (logging) log('Zuschlag: ' + zuschlagLN + ' EUR');
         
         setState(idZuschlagGN, zuschlagG);  
         setState(idPriceLN, priceLN);                                                                                // Wert in Objekt schreiben
         setState(idPriceGN, priceGN);                                                                                // Wert in Objekt schreiben
      }
      
      function findLieferant (body) {
         var text1 = '<div data-polyfill-hidden style="width:330px;word-wrap:break-word;">',		                    // erstes Auftauchen
             text2 = '<br data-polyfill-hidden>';                                                                     // erstes Auftauchen
         var lieferant = extractText(body,text1,text2); 
         lieferant = lieferant.replace(" ","");
         lieferant = lieferant.replace(/&nbsp;/g," ");
         
         setState(idLieferant, lieferant);                                                                            // Wert in Objekt schreiben
      }
      
      function findWebseite (body) {
         var text1 = '<a class="img provider-logo-container" tabindex="-1" href="',		                            // erstes Auftauchen
             text2 = 'class="lazy provider-logo';                                                                     // erstes Auftauchen
         var web = extractText(body,text1,text2);
         web = web.replace(/" "/g,"");
         web = web.replace(/">/g,"");
         web = web.replace(/<img/g,"");   
         web = web.replace('"><imgclass="lazyprovider-logo"',"");
         web = 'https://www.esyoil.com/heizoel-haendler/' + web;  
      
         setState(idWebseite, web);                                                                                   // Wert in Objekt schreiben
      }  
       
      function findDate (body) {   
         var text1 = '<strong>Aktuelle Heizölpreise</strong>:<span id="h4-until-base-3"> 90530 Wendelstein von ',     // erstes Auftauchen + 1 Tag
             text2 = ' Uhr</span>    </h1>';                                                                          // erstes Auftauchen
         var time = extractText(body,text1,text2); 
         var datum = new Date();
         var heute = datum.getDate() + "." + (datum.getMonth()+1) + "." + datum.getFullYear() + " " + time ;
         if (logging) log('Heizöl Datum: ' + heute);   
         setState(idDate, heute);                                                                                     // Wert in Objekt schreiben
      }
       
      function leseWebseite () {
         try {
             request(link, function (error, response, body) {
                 if (!error && response.statusCode == 200) {                                                          // kein Fehler, Inhalt in body
                     findPrice (body);               
                     findZuschlag (body);
                     findLieferant (body);
                     findWebseite (body);
                     findDate (body);               
                     log('Heizöl-Preis von esyoil.com eingelesen');
                 } else log(error,'error');                                                                           // Error beim Einlesen
             });
         } catch (e) {
             log('Fehler (try) leseWebseite: ' + e, 'error');
         }   
      }
       
      // bei Skriptstart
      leseWebseite();
       
      // Schedule
      schedule("59 * * * *", leseWebseite);
      

      Bei diesem Script erhalte ich leider noch Warnungen bei der Ausführung, vielleicht kann mir jemand einen Hinweis geben, woran das liegen kann.
      Hier die Warnungen:

      12:55:19.326	warn	javascript.0 at findPrice (script.js.Heizölpreis_Wohnort:164:4)
      12:55:19.326	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:229:16)
      12:55:19.328	warn	javascript.0 at findPrice (script.js.Heizölpreis_Wohnort:166:4)
      12:55:19.328	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:229:16)
      12:55:19.329	warn	javascript.0 at findPrice (script.js.Heizölpreis_Wohnort:167:4)
      12:55:19.329	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:229:16)
      12:55:19.330	warn	javascript.0 at findZuschlag (script.js.Heizölpreis_Wohnort:177:4)
      12:55:19.330	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:230:16)
      12:55:19.331	warn	javascript.0 at findZuschlag (script.js.Heizölpreis_Wohnort:187:4)
      12:55:19.331	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:230:16)
      12:55:19.332	warn	javascript.0 at findZuschlag (script.js.Heizölpreis_Wohnort:188:4)
      12:55:19.332	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:230:16)
      12:55:19.333	warn	javascript.0 at findZuschlag (script.js.Heizölpreis_Wohnort:189:4)
      12:55:19.333	warn	javascript.0 at Request._callback (script.js.Heizölpreis_Wohnort:230:16)
      12:55:19.334	info	javascript.0 script.js.Heizölpreis_Wohnort: Heizöl-Preis von esyoil.com eingelesen
      
      1. Abfrage der Daten des günstigsten Anbieters:
      /* Ölpreis abfragen
      Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
      am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
      Quelle: heizoel24.de
      Basis: solar-wetter Skript
      {1}
      erstellt: 03.08.2016 von pix
      12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
      29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
      {2}
      Angepasst am 14.07.2019 von Oliver Böhm, verwendet für "Günstigsten Heizöl-Lieferanten abfragen"
      Quelle:  www.esyoil.com
      */
      
      on({id:"javascript.0.Heizoel.Lieferant.Webseite", change: 'ne'}, function (obj) {
      var logging = false;
      var link = 'https://www.esyoil.com/heizoel-haendler//heizoel-haendler/energiehandel-roth-gmbh-595.php'; 
      
      // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
      var request = require('request');
      var strasse;
      var plz;
      var ort;
      var idAdresse = 'Heizoel.Lieferant.Adresse';
      var idTelefon = 'Heizoel.Lieferant.Telefon';
      var idFax     = 'Heizoel.Lieferant.Fax';
      var idMail    = 'Heizoel.Lieferant.Mail';
      
      createState(idAdresse, {
         name: 'Lieferantenadresse',
         desc: 'Lieferantenadresse',
         type: 'string',
         unit: ' '
      });
      
      createState(idTelefon, {
         name: 'Lieferanten Telefonnummer',
         desc: 'Lieferanten Telefonnummer',
         type: 'string',
         unit: ' '
      });
      
      createState(idFax, {
         name: 'Lieferanten Faxnummer',
         desc: 'Lieferanten Faxnummer',
         type: 'string',
         unit: ' '
      });
      
      createState(idMail, {
         name: 'Lieferanten Mailadresse',
         desc: 'Lieferanten Mailadresse',
         type: 'string',
         unit: ' '
      });
       
      
      function extractText(body,text1,text2) {
         var start = body.indexOf(text1) + text1.length;
         var ende = body.indexOf(text2,start);
         if (logging) log('Startposition: ' + start);
         if (logging) log('Endposition: ' + ende);
         var zwischenspeicher;
         if (((start != -1) && (ende != -1)) && (start<ende)) {                      // Fehler abfangen
             zwischenspeicher = body.slice(start,ende);
             zwischenspeicher = zwischenspeicher.trim();
             if (logging) log(zwischenspeicher);
             return(zwischenspeicher);
         } else {
             zwischenspeicher = 'Fehler beim Ausschneiden';
             log(zwischenspeicher, 'error');
             return(0);
         }
      }
      
      function findStraße (body) {
         var text1 = '"streetAddress": "',                                            // erstes Auftauchen
             text2 = '"email": [';                                                    // erstes Auftauchen
         straße = extractText(body,text1,text2);
         straße = straße.replace(/"/g,"");
         straße = straße.replace(/,/g,"");   
      }
      
      function findPLZ (body) {
         var text1 = '"postalCode": "',                                               // erstes Auftauchen
             text2 = '"streetAddress": ';                                             // erstes Auftauchen
         plz = extractText(body,text1,text2);
         plz = plz.replace(/"/g,"");
         plz = plz.replace(/,/g,"");   
      }
      
      function findOrt (body) {
         var text1 = '"addressLocality": "',                                          // erstes Auftauchen
             text2 = '"postalCode": "';                                               // erstes Auftauchen
         ort = extractText(body,text1,text2);
         ort = ort.replace(/"/g,"");
         ort = ort.replace(/,/g,"");
         setState(idAdresse, straße + ", " + plz + " " + ort);   
      }
      
      function findTelefon (body) {
         var text1 = '"telephone": "',                                                // erstes Auftauchen
             text2 = '"aggregateRating": ';                                           // erstes Auftauchen
         var telefon = extractText(body,text1,text2);
         telefon = telefon.replace(/"/g,"");
         telefon = telefon.replace(/}/g,"");
         telefon = telefon.replace(/,/g,"");
         setState(idTelefon, telefon);   
      }
      
      function findFax (body) {
         var text1 = '"faxNumber": "',                                                // erstes Auftauchen
             text2 = '"telephone": "';                                                // erstes Auftauchen
         var fax = extractText(body,text1,text2);
         fax = fax.replace(/"/g,"");   
         fax = fax.replace(/,/g,"");
         setState(idFax, fax);   
      }
      
      function findMail (body) {
         var text1 = '"email": [',                                                    // erstes Auftauchen
             text2 = '"faxNumber": "';                                                // erstes Auftauchen
         var mail = extractText(body,text1,text2);
         mail = mail.replace(/"/g,"");
         mail = mail.replace(/,/g,"");
         mail = mail.replace(/]/g,"");
         setState(idMail, mail);   
      }                             
      
      function leseWebseite () {
         try {
             request(link, function (error, response, body) {
                 if (!error && response.statusCode == 200) {                          // kein Fehler, Inhalt in body
                     findStraße (body);
                     findPLZ (body);
                     findOrt (body);
                     findTelefon (body);
                     findFax (body);
                     findMail (body);
                     log('Heizöl-Preis von esyoil.com eingelesen');
                 } else log(error,'error');                                           // Error beim Einlesen
             });
         } catch (e) {
             log('Fehler (try) leseWebseite: ' + e, 'error');
         }
      } 
      
      // bei Skriptstart
      leseWebseite();
      });
      
      
      1. Abfrage der Differenz zum Vortag:
      /* Ölpreis abfragen
      Auf diese Anfrage hin: http://forum.iobroker.net/viewtopic.php?f=8&t=3455
      am 4.11.2016 getestet, nach Änderung der Webseite nun Fehler
      Quelle: heizoel24.de
      Basis: solar-wetter Skript
      {1}
      erstellt: 03.08.2016 von pix
      12.11.2016 Webseite liefert nicht mehr Prognose, sondern Ist-Preis. Skript angepasst
      29.08.2017 SKRIPT AUSGESCHALTET, DA NICHT IN GEBRAUCH
      {2}
      Angepasst am 14.07.2019 von Oliver Böhm, verwendet für "Heizölpreis Allgemein und Differenz zum Vortag abfragen"
      Quelle:  www.esyoil.com
      */
       
      var logging = false;
      var link = 'https://www.esyoil.com/%c3%b6lpreis';
       
      // ab hier nix mehr ändern, solange die Webseite die Daten nicht ändert
      var request = require('request');
      var idPrice =   'Heizoel.Heizölpreis.Allgemein.Preis',
          idTrend =   'Heizoel.Heizölpreis.Allgemein.Trend zum Vortag',
          idPercent = 'Heizoel.Heizölpreis.Allgemein.Änderung zum Vortag';   
         
      createState(idPrice, {
         name: 'Heizölpreis für heute',
         desc: 'Heizölpreis für heute',
         type: 'number',
         def: 0,
         min: 0,
         unit: '€/100l'
      });
      createState(idPercent, {
         name: 'Heizölpreisänderung in Prozent zum Vortag',
         desc: 'Heizölpreisänderung zum Vortag',
         type: 'number',
         def: 0,
         min: 0,
         max: 100,
         unit: '%'
      });
      
      createState(idTrend, {
         name: 'Trend zum Vortag',
         desc: 'Trend zum Vortag',
         type: 'string',
         unit: ' '
      });
       
      function extractText(body,text1,text2) {   
         var start = body.indexOf(text1) + text1.length;
         var ende = body.indexOf(text2,start);
         if (logging) log('Startposition: ' + start);
         if (logging) log('Endposition: ' + ende);
         var zwischenspeicher;
         if (((start != -1) && (ende != -1)) && (start<ende)) {                      // Fehler abfangen
             zwischenspeicher = body.slice(start,ende);
             zwischenspeicher = zwischenspeicher.trim();
             if (logging) log(zwischenspeicher);
             return(zwischenspeicher);
         } else {
             zwischenspeicher = 'Fehler beim Ausschneiden';
             log(zwischenspeicher, 'error');
             return(0);
         }
      }
       
      function findNewBody (body) {   
         var text1 = '>Heizöl</a>',                                                   // erstes Auftauchen
             text2 = 'id="1-oelpreis-news"';                                          // erstes Auftauchen
         var body = extractText(body,text1,text2);   
      }
      
      function findPrice (body) {   
         var text1 = '<td class="">',                                                 // erstes Auftauchen
             text2 = '€';                                                             // erstes Auftauchen
         var price = extractText(body,text1,text2); 
         var price_array = price.split(',');
         price = price_array[0] + '.' + price_array[1];
         price = parseFloat(price);
         if (logging) log('Heizöl Preis: ' + price + ' EUR');
         setState(idPrice, parseFloat(price,10));                                     // Wert in Objekt schreiben
      }
       
      function findPercent (body) {   
         var text1 = '<span class=" text-success">',                                  // erstes Auftauchen
             text2 = '%</span>';                                                      // erstes Auftauchen    
         var percent = extractText(body,text1,text2);   
         var ausschnitt = percent.slice(0, 1);
         percent = percent.replace(ausschnitt,"");   
         var percent_array = percent.split(',');
         percent = percent_array[0] + '.' + percent_array[1];
         percent = parseFloat(percent);
         if (logging) log('Heizöl Prozent: ' + percent.toFixed(2) + '%');
         setState(idPercent, percent);                                                // Wert in Objekt schreiben
         setState(idTrend, ausschnitt);                                               // Wert in Objekt schreiben
      }
       
      function leseWebseite () {
         try {
             request(link, function (error, response, body) {
                 if (!error && response.statusCode == 200) {                          // kein Fehler, Inhalt in body
                     findNewBody (body);
                     findPrice(body);
                     findPercent(body);               
                     log('Heizöl-Preis von esyoil.com eingelesen');
                 } else log(error,'error');                                           // Error beim Einlesen
             });
         } catch (e) {
             log('Fehler (try) leseWebseite: ' + e, 'error');
         }   
      }
       
      // bei Skriptstart
      leseWebseite();
       
      // Schedule
      schedule("59 * * * *", leseWebseite);
      

      Gruß Oliver

      posted in ioBroker Allgemein
      O
      Oli
    • RE: [Javascript] für Warnungen von Lebensmittelwarnung

      @Nashra

      Datum wird jetzt angezeigt und ins deutsche Format umgewandelt.

      Aktuelles Script:

      /*VIS Lebensmittelwarnungen
      
      Bringt einen RSS-Feed als Tabelle in ioBroker
      setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
      
      
      erstellt: 11.05.2017 von Torsten (auf Basis von Bluefox Code und Pix)
      Script angepasst : 28.10.2019 von Oliver
      */
      
      var idFeedTabelle = 'RSS-Feed.Lebensmittelwarnungen.Tabelle';
      
      var forceCreation = false;
          
      createState(idFeedTabelle, '', forceCreation, {
          write: true,
          read: true,
          name: 'RSS Feed Lebensmittelwarnungen Tabelle',
          type: 'string',
          desc: 'Lebensmittelwarnungen RSS Feed als HTML Tabelle',
          role: 'html'
      });
      
      var link = 'https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/feed/alle/bayern.rss';
      
      var quer = false ;
      
      function RSS_einlesen () {
          var parseString = require('xml2js').parseString;
          var request = require('request');
      
          request(link, function (error, response, body) {
              if (!error && response.statusCode == 200) {
          
                  parseString(body, {
                      explicitArray: false,
                      mergeAttrs: true
                  },
                  function (err, result) {
                      //log(JSON.stringify(result, null, 2));
                      if (err) {
                          log("Fehler: " + err, 'error');
                      } else {    
                          var tabelle;
                          if (quer) {
                              // Titel links, Inhalt rechts
                              tabelle ='<table class="rss_feed"><thead><tr><th>Titel</th><th>Produktwarnungen</th></tr></thead><tbody>';
                              for (var i = 0; i <result.rss.channel.item.length; i++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '-----------------------------------------------------------------------------------------</td></tr>';
                              }
                          } else {
                              // Titel oben, INhalt darunter (wie in der Zeitung)
                              tabelle ='<table class="rss_feed"><thead><tr><th>Produktwarnungen</th><tr><tr></tr></thead><tbody>';
                              for (var j = 0; j <result.rss.channel.item.length; j++) {
                                  
                                  //Datum auf dt. Wochentage patchen                                                       
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Mon', 'Mo');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Tue', 'Di');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Wed', 'Mi');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Thu', 'Do');                               
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Fri', 'Fr');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Sat', 'Sa');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Sun', 'So');
      
                                  //Datum auf dt. Monate patchen
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Mar', 'März');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('May', 'Mai');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Oct', 'Okt');                                
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('Dec', 'Dez');                               
                                  result.rss.channel.item[j].pubDate = result.rss.channel.item[j].pubDate.replace('+0000', '');                                                  
                                  
                                  tabelle += '<tr><td>' + result.rss.channel.item[j].title + '</td></tr><tr><td>' + result.rss.channel.item[j].description + '</td></tr><tr><td>' + result.rss.channel.item[j].pubDate + '</td></tr><tr><td>-----------------------------------------------------------------------------------------</td></tr>';
                              }
                          }
                          tabelle += '</tbody></table>';  
                          setState(idFeedTabelle, tabelle);
                      }
                  });
              } else  {
                  log(error, 'error');
              }
          });   // Ende request 
          log('RSS-Feed ' + link + ' eingelesen');
      }
      
      schedule("*/10 * * * *", RSS_einlesen);  // alle 10 Minuten
      RSS_einlesen();
      

      posted in Praktische Anwendungen (Showcase)
      O
      Oli
    • RE: Test Adapter Material Design Widgets v0.2.x

      @dos1973

      das ist das von ioBroker mit dem Script von Mic, falls du das meinst?

      Willst du nur das Wiget oder die ganze Seite?

      694488a6-bbc9-4048-a019-9b59e9ea851d-image.png

      posted in Tester
      O
      Oli
    • RE: View Adapter Status

      @v522533

      anbei das Script, es werden für jeden Adapter einzelne Datenpunkte angelegt. Das automatische entfernen eines Adapters funktioniert noch nicht, daran arbeite ich momentan noch.

      38a2687e-9550-48a1-9af9-1c5bbcf4c353-image.png

      Ich hoffe es funktioniert bei dir, konnte es bisher nur auf meine Bedürfnisse testen.

      // Liest die ioBroker Adapter aus und legt verschiedenen State's an.
      
      on({id:"system.adapter.admin.0.uptime",change:'any'}, function (obj) {
         createState('Adapter.Anzahl', 0, { name: 'Anzahl', desc: 'Anzahl der Adapter', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
         //var counterAlt = getState("javascript.0.Adapter.Anzahl").val;
         var counter =0;        
      
         var cacheSelector = $('[id=system.adapter.*.alive]');    
         cacheSelector.each(function(id, i) {        
             var devicename = getObject(id).common.name;             
             var devicenameName=devicename;
             var test = devicenameName;
             var devicename_array = devicenameName.split(' ');        
             devicenameName = devicename_array[0];
      
             counter = counter+1; 
                 
             var strStatePath = "system.adapter." + devicenameName + ".alive";
             if (isState(strStatePath, true)) {
                 var uptime = getState("system.adapter." + devicenameName + ".uptime").val;
                 var tage = Math.floor(uptime / (24*3600));
                 var stunden = Math.floor((uptime % (24*3600))/3600);
                 var minuten = Math.floor((uptime % (3600))/60);
                 var sekunden = Math.floor(uptime % 60);
                 uptime = tage.toString()+" Tag(e), "+stunden.toString()+" Std., "+minuten.toString()+" Min. ";
      
                 var total = getState("system.adapter." + devicenameName + ".memHeapTotal").val;
                 var used = getState("system.adapter." + devicenameName + ".memHeapUsed").val;
                 var rss = getState("system.adapter." + devicenameName + ".memRss").val;
                 var connect = getState("system.adapter." + devicenameName + ".alive").val;            
      
                 if(connect == false){
                     var con = 0;    
                 } else {                
                     var con = 1;                                             
                 } 
      
                 var strStatePath = devicenameName + ".info.connection";
                 if (isState(strStatePath, true)) {
                     var connectS = getState(devicenameName + ".info.connection").val;
                 }
      
                 if (connectS == false) {
                     con = 2;
                 }                                                 
             }       
             
             var contentstring = devicenameName;
             var suchstring = /(ical)/g; 
             var suchergebnis = suchstring.test( contentstring );
             
             if (suchergebnis != true) {
                 var devicename_array = devicenameName.split('.');        
                 devicenameName = devicename_array[0];
             }    
      
             if (devicenameName == "daswetter") {
                 var bild = "/" + devicenameName + ".admin/" + devicenameName + "com.png";
             } else if (suchergebnis != false) {
                 var devicename_array = devicenameName.split('.');        
                 var icalName = devicename_array[0];        
                 var bild = "/" + icalName + ".admin/" + icalName + ".png";
             } else {
                 var bild = "/" + devicenameName + ".admin/" + devicenameName + ".png";
             }
                 
             devicenameName = devicenameName.substring(0, 1).toUpperCase() + devicenameName.substring(1).toLowerCase(); 
             
             devicename="Adapter.Adapter"+counter.toString()+".NameAdapter";
             createState(devicename, 'empty', { name: 'Name des Geräts', desc: '', type: 'string', role: '',read: true, write: true }); 
             setStateDelayed(devicename, devicenameName, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".Bild";
             createState(devicename, 'empty', { name: 'Speicherort Bild', desc: '', type: 'string', role: '',read: true, write: true });
             setStateDelayed(devicename, bild, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".Uptime";          
             createState(devicename, 'empty', { name: 'Uptime', desc: '', type: 'string', role: '',read: true, write: true });
             setStateDelayed(devicename, uptime, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".MemUsed";          
             createState(devicename, 0, { name: 'Link MemUsed', desc: '', type: 'number', role: '',read: true, write: true });
             setStateDelayed(devicename, used, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".MemTotal";          
             createState(devicename, 0, { name: 'Link MemTotal', desc: '', type: 'number', role: '',read: true, write: true });
             setStateDelayed(devicename, total, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".MemRSS";          
             createState(devicename, 0, { name: 'Link MemRSS', desc: '', type: 'number', role: '',read: true, write: true });
             setStateDelayed(devicename, rss, 800);
      
             devicename="Adapter.Adapter"+counter.toString()+".Connected";          
             createState(devicename, 0, { name: 'Status Adapter', desc: '', type: 'number', role: '',read: true, write: true });
             setStateDelayed(devicename, con, 800);
             
         });
          
         setStateDelayed('Adapter.Anzahl', counter, 800);
      
         function isState(strStatePath, strict) {
             let mSelector;
             if (strict) {
                 mSelector = $('state[id=' + strStatePath + '$]');
             } else {
                 mSelector = $('state[id=' + strStatePath + ']');
             }
             if (mSelector.length > 0) {
                 return true;
             } else {
                 return false;
             }
         }  
      });    
         
                 
      

      Hier ist noch meine Vis mit den angepassten Datenpunkten

      AdapterVis.txt

      posted in Praktische Anwendungen (Showcase)
      O
      Oli
    • RE: Test Adapter HeatingControl v2.12.x

      @Pittini

      die von dir angelegte Issue ist genau das, was ich gemeint habe, habe ich leider überlesen.

      Meinen Vorschlag mit dem zusätzlichen gruppieren der Tage muss natürlich @Rene_HM entscheiden.

      Da ich allerdings mein Heizverhalten bzw meine Arbeitszeiten nicht als exotisch bezeichnen würde, finde ich den Vorschlag durchaus berechtigt.

      Mo-Do = gleiche Arbeitszeit
      Fr = kürzere Arbeitszeit, bzw Abends eine längere Heizzeit
      Sa = Ausschlafen, Heizzeit beginnt später und endet später
      So = Ausschlafen, Heizzeit beginnt später und endet früher, da Montag arbeit.

      posted in Tester
      O
      Oli
    • RE: [Neuer Adapter] radar-trap

      @wszene

      mache ich gerne, Arbeite momentan noch zusätzlich mit einem Script und dem RoadTraffic Adapter. Diesen möchte ich allerdings ersetzen, sobald der Radar-Trap Adapter Fahrzeiten und Entfernung mit ausgibt.

      Außerdem verwende ich in Vis zusätzlichen mit den Material Design Widgets Adapter.

      VIS:

      {
       "settings": {
         "style": {
           "background-color": "#27272727"
         },
         "theme": "dark-hive",
         "sizex": "",
         "sizey": "",
         "gridSize": "",
         "useBackground": false,
         "snapType": null
       },
       "widgets": {
         "e00001": {
           "tpl": "tplVis-materialdesign-Grid-Views",
           "data": {
             "g_fixed": false,
             "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,
             "visibility-cond": "==",
             "visibility-val": 1,
             "visibility-groups-action": "hide",
             "countViews": "2",
             "viewVertAlignment": "center",
             "viewHorAlignment": "space-around",
             "showResolutionAssistant": false,
             "visibilityCondition0": "==",
             "visibilityCondition1": "==",
             "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,
             "desktopGaps": "0",
             "viewColSpan": "2",
             "handyGridPortraitColSpan": "6",
             "handyGridLandscapeColSpan": "6",
             "tabletGridPortraitColSpan": "6",
             "tabletGridLandscapeColSpan": "3",
             "visibilityCondition2": "==",
             "visibilityCondition3": "==",
             "View0": "Startseite_Fahrzeiten_Auto_Dialog_Route",
             "viewsHeight0": "400",
             "View1": "Startseite_Fahrzeiten_Auto_Dialog_Routeninformation",
             "viewsHeight1": "400",
             "View2": "Startseite_Fahrzeiten_Auto_Dialog_Info",
             "viewsHeight2": "170",
             "View3": "Wetter_Luftfeuchtigkeit_Tag2",
             "viewsHeight3": "100",
             "visibilityCondition4": "==",
             "visibilityCondition5": "==",
             "visibilityCondition6": "==",
             "visibilityCondition7": "==",
             "visibilityCondition8": "==",
             "visibilityCondition9": "==",
             "visibilityCondition10": "==",
             "View4": "Wetter_Windgeschwindigkeit_Tag2",
             "viewsHeight4": "130",
             "View5": "Wetter_Windrichtung_Tag2",
             "viewsHeight5": "100",
             "View6": "Wetter_Luftdruck_Tag2",
             "viewsHeight6": "100",
             "View7": "Wetter_Schneefall_Tag2",
             "viewsHeight7": "100",
             "View8": "Wetter_Sonne_Tag2",
             "viewsHeight8": "130",
             "View9": "Wetter_Mond_Tag2",
             "viewsHeight9": "130",
             "View10": "Wetter_Grafik_Tag2",
             "viewsHeight10": "240",
             "viewColSpan10": "8",
             "handyGridPortraitColSpan10": "12",
             "handyGridLandscapeColSpan10": "12",
             "tabletGridPortraitColSpan10": "12",
             "tabletGridLandscapeColSpan10": "8",
             "visibilityCondition11": "==",
             "View11": "Wetter_Pollenindex_Tag2",
             "viewsHeight11": "240",
             "viewColSpan11": "4",
             "handyGridPortraitColSpan11": "12",
             "handyGridLandscapeColSpan11": "12",
             "tabletGridPortraitColSpan11": "12",
             "tabletGridLandscapeColSpan11": "4",
             "viewColSpan6": "",
             "viewColSpan7": "",
             "viewColSpan8": "3",
             "viewColSpan9": "3",
             "tabletGridLandscapeColSpan9": "6",
             "tabletGridLandscapeColSpan8": "6",
             "tabletLandscapeWidth": "819",
             "tabletPortraitWidth": "614",
             "handyLandscapeWidth": "613",
             "handyPortraitWidth": "360",
             "visibilityOid11": "0_userdata.0.vis.MaterialDesignWidgets.Wetter.Pollenflug.visible",
             "visibilityConditionValue11": "true",
             "handyPortraitGaps": "0",
             "tabletPortraitGaps": "0",
             "viewSortOrder0": "2",
             "viewColSpan0": "4",
             "handyGridPortraitColSpan0": "12",
             "viewSortOrder4": "4",
             "viewColSpan4": "3",
             "viewSortOrder8": "2",
             "viewSortOrder9": "3",
             "viewSortOrder3": "8",
             "viewSortOrder5": "10",
             "viewSortOrder6": "9",
             "viewSortOrder7": "7",
             "viewSortOrder2": "1",
             "viewSortOrder1": "3",
             "viewColSpan1": "8",
             "handyGridLandscapeColSpan0": "12",
             "tabletGridPortraitColSpan0": "",
             "tabletGridLandscapeColSpan0": "",
             "handyGridPortraitColSpan1": "12",
             "handyGridLandscapeColSpan1": "12",
             "tabletGridPortraitColSpan1": "",
             "tabletGridLandscapeColSpan1": "",
             "visibleResolutionGreaterThan0": "",
             "viewColSpan2": "12",
             "handyGridPortraitColSpan2": "12",
             "handyGridLandscapeColSpan2": "12",
             "tabletGridPortraitColSpan2": "12",
             "tabletGridLandscapeColSpan2": "12"
           },
           "style": {
             "left": "0",
             "top": "0",
             "width": "100%",
             "height": "100%",
             "overflow-y": "auto"
           },
           "widgetSet": "materialdesign"
         }
       },
       "name": "Startseite_Fahrzeiten_Auto_Dialog",
       "filterList": []
      }
      
      {
        "settings": {
          "style": {
            "background-color": "#27272727",
            "background_class": ""
          },
          "theme": "dark-hive",
          "sizex": "",
          "sizey": "",
          "gridSize": "",
          "useBackground": false,
          "snapType": null
        },
        "widgets": {
          "e00001": {
            "tpl": "tplValueString",
            "data": {
              "oid": "nothing_selected",
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": false,
              "g_css_shadow_padding": true,
              "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,
              "html_prepend": "Auto Strecke: Zuhause - Arbeit",
              "name": "Überschrift"
            },
            "style": {
              "left": "20px",
              "top": "14px",
              "color": "#d7cec1",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px",
              "width": "calc(100% - 40px)",
              "text-align": "center",
              "z-index": "1",
              "height": "22px",
              "box-shadow": "0 2px #d7cec1"
            },
            "widgetSet": "basic"
          },
          "e00002": {
            "tpl": "tplValueFloat",
            "data": {
              "oid": "roadtraffic.0.Arbeit.route.durationTrafficText",
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "is_comma": "true",
              "factor": "1",
              "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_append_singular": " Min. <br><span style=\"font-size: 12px\">Delta: {0_userdata.0.Routenplanung.Stauerkennung.Delta_0} Min.</span>",
              "html_append_plural": " Min. <br><span style=\"font-size: 12px\">Delta: {0_userdata.0.Routenplanung.Stauerkennung.Delta_0} Min.</span>"
            },
            "style": {
              "left": "20px",
              "top": "76px",
              "width": "110px",
              "height": "56px",
              "color": "#8f8f8f",
              "background-color": "#2e2e2e",
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "font-size": "x-large",
              "line-height": "",
              "text-align": "center",
              "z-index": "1",
              "padding-top": "20px"
            },
            "widgetSet": "basic"
          },
          "e00003": {
            "tpl": "tplValueString",
            "data": {
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.Staustufe_0",
              "visibility-cond": "==",
              "visibility-val": 1,
              "test_html": "",
              "html_append": "",
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "html_prepend": "Staustufe: ",
              "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,
              "visibility-groups-action": "hide",
              "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": "Staustufe"
            },
            "style": {
              "left": "140px",
              "top": "76px",
              "width": "calc(100% - 280px)",
              "height": "20px",
              "color": "#8f8f8f",
              "background": "",
              "z-index": "4",
              "text-align": "center",
              "background-color": "#2e2e2e",
              "border-radius": "5px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "font-size": "small",
              "line-height": "1.5"
            },
            "widgetSet": "basic"
          },
          "e00004": {
            "tpl": "tplValueString",
            "data": {
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.Blitzer_0",
              "visibility-cond": "==",
              "visibility-val": 1,
              "test_html": "",
              "html_append": "",
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "html_prepend": " ",
              "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,
              "visibility-groups-action": "hide",
              "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": "Staustufe"
            },
            "style": {
              "left": "140px",
              "top": "102px",
              "width": "calc(100% - 280px)",
              "height": "20px",
              "color": "#8f8f8f",
              "background": "",
              "z-index": "4",
              "text-align": "center",
              "background-color": "#2e2e2e",
              "border-radius": "5px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "font-size": "small",
              "line-height": "1.5"
            },
            "widgetSet": "basic"
          },
          "e00005": {
            "tpl": "tplValueString",
            "data": {
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.RouteÜber_0",
              "visibility-cond": "==",
              "visibility-val": 1,
              "test_html": "",
              "html_append": " - {roadtraffic.0.Arbeit.route.distanceText}",
              "gestures-offsetX": 0,
              "gestures-offsetY": 0,
              "html_prepend": "über ",
              "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,
              "visibility-groups-action": "hide",
              "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": "Routenführung"
            },
            "style": {
              "left": "20px",
              "top": "45px",
              "width": "calc(100% - 40px)",
              "height": "17px",
              "color": "#8f8f8f",
              "background": "",
              "z-index": "4",
              "text-align": "center",
              "font-size": "small"
            },
            "widgetSet": "basic"
          },
          "e00006": {
            "tpl": "tplValueTimestamp",
            "data": {
              "oid": "roadtraffic.0.Arbeit.route.durationTrafficText",
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": 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,
              "format_date": "hh:mm:ss",
              "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_prepend": "Letzte Abfrage: ",
              "name": "Letzte Abfrage",
              "html_append": " Uhr"
            },
            "style": {
              "left": "140px",
              "top": "130px",
              "z-index": "4",
              "width": "calc(100% - 280px)",
              "height": "20px",
              "color": "#8f8f8f",
              "text-align": "center",
              "background": "",
              "padding-top": "",
              "margin-top": "",
              "padding": "",
              "background-color": "#2e2e2e",
              "border-radius": "5px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "font-size": "small",
              "line-height": "1.5"
            },
            "widgetSet": "basic"
          },
          "e00007": {
            "tpl": "tplFrame",
            "data": {
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "title": "",
              "title_color": "#d7cec1",
              "title_top": "7",
              "title_left": "99",
              "header_height": "0",
              "header_color": "",
              "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,
              "title_back": "",
              "title_font": "",
              "name": "Hintergrund",
              "class": "my-card-containerR"
            },
            "style": {
              "left": "",
              "top": "",
              "width": "",
              "height": "160px",
              "color": "",
              "z-index": 0,
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "background": "#202020",
              "border-color": "#2d2d2d",
              "font-size": "14px",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px"
            },
            "widgetSet": "basic"
          },
          "e00008": {
            "tpl": "tplHistorySparkLIne",
            "data": {
              "visibility-cond": "==",
              "visibility-val": 1,
              "aggregate": "max",
              "chartType": "line",
              "points": "400",
              "time_interval": "24 hours",
              "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,
              "visibility-oid": "",
              "min": "15",
              "max": "45",
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.Fahrzeit_0",
              "instance": "history.0",
              "lineColor": "white",
              "fillColor": "darkgreen",
              "lineWidth": "2",
              "disableTooltips": false,
              "zeroColor": "#2943c2",
              "visibility-groups-action": "hide",
              "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": "Diagramm"
            },
            "style": {
              "left": "calc(100% - 130px)",
              "top": "76px",
              "width": "110px",
              "height": "76px",
              "z-index": "2",
              "border-width": "",
              "border-style": "",
              "border-color": "",
              "background-color": "#2e2e2e",
              "margin-left": "",
              "padding-left": "",
              "padding": "",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "border-radius": "10px"
            },
            "widgetSet": "history"
          }
        },
        "name": "Startseite_Fahrzeiten_Auto_Dialog_Info",
        "filterList": []
      }
      
      {
        "settings": {
          "style": {
            "background-color": "#27272727",
            "background_class": ""
          },
          "theme": "dark-hive",
          "sizex": "",
          "sizey": "",
          "gridSize": "",
          "useBackground": false,
          "snapType": null
        },
        "widgets": {
          "e00001": {
            "tpl": "tplValueString",
            "data": {
              "oid": "nothing_selected",
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": false,
              "g_css_shadow_padding": true,
              "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,
              "html_prepend": "Route",
              "name": "Überschrift"
            },
            "style": {
              "left": "20px",
              "top": "14px",
              "color": "#d7cec1",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px",
              "width": "calc(100% - 40px)",
              "text-align": "center",
              "z-index": "1",
              "height": "22px",
              "box-shadow": "0 2px #d7cec1"
            },
            "widgetSet": "basic"
          },
          "e00002": {
            "tpl": "tplFrame",
            "data": {
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "title": "",
              "title_color": "#d7cec1",
              "title_top": "7",
              "title_left": "99",
              "header_height": "0",
              "header_color": "",
              "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,
              "title_back": "",
              "title_font": "",
              "name": "Hintergrund",
              "class": "my-card-container"
            },
            "style": {
              "left": "",
              "top": "",
              "width": "",
              "height": "390px",
              "color": "",
              "z-index": 0,
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "background": "#202020",
              "border-color": "#2d2d2d",
              "font-size": "14px",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px"
            },
            "widgetSet": "basic"
          },
          "e00003": {
            "tpl": "tplMapbox",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": false,
              "g_css_background": false,
              "g_css_shadow_padding": false,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "route": "Zuhause -> Arbeit | 7HmkQwfB0dDfO3AU",
              "routeColor": "blue",
              "clusterColor": "#E1BEE7",
              "symbolColor": "red",
              "styleSelect": "satellite-streets-v11",
              "fitButton": "true",
              "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
            },
            "style": {
              "left": "20px",
              "top": "45px",
              "width": "calc(100% - 40px)",
              "height": "340px",
              "z-index": "2",
              "border-radius": "10px"
            },
            "widgetSet": "radar-trap"
          }
        },
        "name": "Startseite_Fahrzeiten_Auto_Dialog_Route",
        "filterList": []
      }
      
      {
        "settings": {
          "style": {
            "background-color": "#27272727",
            "background_class": ""
          },
          "theme": "dark-hive",
          "sizex": "",
          "sizey": "",
          "gridSize": "",
          "useBackground": false,
          "snapType": null
        },
        "widgets": {
          "e00001": {
            "tpl": "tplValueString",
            "data": {
              "oid": "nothing_selected",
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": false,
              "g_css_shadow_padding": true,
              "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,
              "html_prepend": "Routeninformation",
              "name": "Überschrift"
            },
            "style": {
              "left": "20px",
              "top": "14px",
              "color": "#d7cec1",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px",
              "width": "calc(100% - 40px)",
              "text-align": "center",
              "z-index": "1",
              "height": "22px",
              "box-shadow": "0 2px #d7cec1"
            },
            "widgetSet": "basic"
          },
          "e00002": {
            "tpl": "tplFrame",
            "data": {
              "g_fixed": true,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "title": "",
              "title_color": "#d7cec1",
              "title_top": "7",
              "title_left": "99",
              "header_height": "0",
              "header_color": "",
              "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,
              "title_back": "",
              "title_font": "",
              "name": "Hintergrund",
              "class": "my-card-container"
            },
            "style": {
              "left": "",
              "top": "",
              "width": "",
              "height": "390px",
              "color": "",
              "z-index": 0,
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "background": "#202020",
              "border-color": "#2d2d2d",
              "font-size": "14px",
              "text-shadow": "rgba(0, 0, 0, 0.9) 3px 3px 4px"
            },
            "widgetSet": "basic"
          },
          "e00003": {
            "tpl": "tplTrapsInfo",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "route": "Zuhause -> Arbeit | 7HmkQwfB0dDfO3AU",
              "noNothingInfo": true,
              "symbolColor": "red",
              "fixedTraps": "true",
              "mobileTraps": "true",
              "trafficJams": false,
              "accidents": false,
              "roadWorks": false,
              "objects": false,
              "sleekness": false,
              "fog": false,
              "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
            },
            "style": {
              "left": "calc(50% - 110px)",
              "top": "45px",
              "color": "#8f8f8f",
              "z-index": "2",
              "width": "220px",
              "height": "340px",
              "text-align": "center",
              "font-weight": "bold",
              "font-size": "medium",
              "font-family": "Arial, Helvetica, sans-serif",
              "line-height": "",
              "background": "#2e2e2e",
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)"
            },
            "widgetSet": "radar-trap"
          },
          "e00004": {
            "tpl": "tplTrapsInfo",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "route": "Zuhause -> Arbeit | 7HmkQwfB0dDfO3AU",
              "noNothingInfo": true,
              "symbolColor": "red",
              "fixedTraps": false,
              "mobileTraps": false,
              "trafficJams": true,
              "accidents": true,
              "roadWorks": true,
              "objects": true,
              "sleekness": false,
              "fog": false,
              "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
            },
            "style": {
              "left": "20px",
              "top": "45px",
              "color": "#8f8f8f",
              "z-index": "2",
              "width": "220px",
              "height": "340px",
              "background": "#2e2e2e",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)",
              "border-radius": "10px"
            },
            "widgetSet": "radar-trap"
          },
          "e00005": {
            "tpl": "tplTrapsInfo",
            "data": {
              "g_fixed": false,
              "g_visibility": false,
              "g_css_font_text": true,
              "g_css_background": true,
              "g_css_shadow_padding": true,
              "g_css_border": true,
              "g_gestures": false,
              "g_signals": false,
              "g_last_change": false,
              "visibility-cond": "==",
              "visibility-val": 1,
              "visibility-groups-action": "hide",
              "route": "Zuhause -> Arbeit | 7HmkQwfB0dDfO3AU",
              "noNothingInfo": true,
              "symbolColor": "red",
              "fixedTraps": false,
              "mobileTraps": false,
              "trafficJams": false,
              "accidents": false,
              "roadWorks": false,
              "objects": false,
              "sleekness": true,
              "fog": true,
              "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
            },
            "style": {
              "left": "calc(100% - 240px)",
              "top": "45px",
              "color": "#8f8f8f",
              "z-index": "2",
              "width": "220px",
              "height": "340px",
              "text-align": "center",
              "font-weight": "bold",
              "line-height": "",
              "font-family": "Arial, Helvetica, sans-serif",
              "background": "#2e2e2e",
              "border-radius": "10px",
              "box-shadow": "2px 2px 3px rgba(20, 20, 20, 50)"
            },
            "widgetSet": "radar-trap"
          },
          "e00006": {
            "tpl": "tplValueString",
            "data": {
              "oid": "",
              "g_fixed": false,
              "g_visibility": true,
              "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": "Keine Blitzer",
              "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,
              "html_prepend": "Keine Informationen zu Blitzern vorhanden!",
              "visibility-oid": "0_userdata.0.Routenplanung.Stauerkennung.Blitzer_0"
            },
            "style": {
              "left": "calc(50% - 105px)",
              "top": "150px",
              "color": "orange",
              "width": "210px",
              "font-size": "medium",
              "font-weight": "bold",
              "z-index": "3",
              "text-align": "center",
              "height": "100px",
              "padding-top": "6px"
            },
            "widgetSet": "basic"
          },
          "e00007": {
            "tpl": "tplValueString",
            "data": {
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.Stauinfo_0",
              "g_fixed": false,
              "g_visibility": true,
              "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": "Ja",
              "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,
              "html_prepend": "",
              "visibility-oid": "0_userdata.0.Routenplanung.Stauerkennung.Stauinfo_0"
            },
            "style": {
              "left": "25px",
              "top": "150px",
              "color": "orange",
              "width": "210px",
              "font-size": "medium",
              "font-weight": "bold",
              "z-index": "3",
              "text-align": "center",
              "height": "100px",
              "padding-top": "6px"
            },
            "widgetSet": "basic"
          },
          "e00008": {
            "tpl": "tplValueString",
            "data": {
              "oid": "0_userdata.0.Routenplanung.Stauerkennung.Wetterinfo_0",
              "g_fixed": false,
              "g_visibility": true,
              "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": "Ja",
              "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,
              "html_prepend": "",
              "visibility-oid": "0_userdata.0.Routenplanung.Stauerkennung.Wetterinfo_0"
            },
            "style": {
              "left": "calc(100% - 235px)",
              "top": "150px",
              "color": "orange",
              "width": "210px",
              "font-size": "medium",
              "font-weight": "bold",
              "z-index": "3",
              "text-align": "center",
              "height": "100px",
              "padding-top": "6px"
            },
            "widgetSet": "basic"
          }
        },
        "name": "Startseite_Fahrzeiten_Auto_Dialog_Routeninformation",
        "filterList": []
      }
      

      Script:

      /************************************************************************************************************************************************************************
      Version: 1.0.1
      created by Oliver Böhm, letzte Aktualierung: 31.12.2021
      Dieses Skript erstellt Informationen zur Verkehrslage aus dem RoadTraffic- und Radar-Trap Adapter, um diese im VIS darzustellen 
      =========================================================================================================================================================================
      !!! Voraussetzungen !!!
      * RoadTraffic Adapter                   >= 0.2.0
      * Radar-Trap Adapter                    >= 0.2.1
      * Javascript Adapter                    >= 4.6.1
      =========================================================================================================================================================================
      --- Links ---
      * Support:          	https://forum.iobroker.net/topic/20496/test-adapter-roadtraffic-v0-0-x
      * Support:          	https://forum.iobroker.net/topic/50605/neuer-adapter-radar-trap
      =========================================================================================================================================================================
      --- Changelog ---
      * 1.0.0:            Initial release
      * 1.0.1:            Anpassung an Radar-Trap Adapter (31.12.2021)
      ************************************************************************************************************************************************************************/
      
      // Skript Einstellungen *************************************************************************************************************************************************
      let pfad = '0_userdata.0.Routenplanung.Stauerkennung.';                                          // Pfad der anzulegenden ioBroker Objekte
      
      let stauStufe1AbMinuten = 5;
      let stauStufe2AbMinuten = 8;
      let stauStufe3AbMinuten = 12; 
      
      let idStau_0 = pfad + "Stau_0";                                                                 // boolean
      let idStaustufe_0 = pfad + "Staustufe_0";                                                       // Wert von (0-3)
      let idVia_0 = pfad + "RouteÜber_0";                                                             // Route über 
      let idDelta_0 = pfad + "Delta_0";                                                               // Unterschied zur durchschnittlichen Fahrzeit
      let idFahrzeit_0 = pfad + "Fahrzeit_0";                                                         // Fahrzeit in Minuten
      let idBlitzer_0 = pfad + "Blitzer_0";                                                           // Blitzer auf Route
      let idStauinfo_0 = pfad + "Stauinfo_0";                                                         // Blitzer auf Route
      let idWetterinfo_0 = pfad + "Wetterinfo_0";                                                     // Blitzer auf Route
      //***********************************************************************************************************************************************************************
       
      // Beim Skriptstart die Werte abfragen
      main();
      
      // Trigger
      on({id:"roadtraffic.0.Arbeit.route.durationTraffic", change: 'any'}, main);
       
      function main()  {
         let minuten0 = Math.ceil(getState("roadtraffic.0.Arbeit.route.durationTraffic").val / 60);
         let minuten0_durchschnitt = Math.ceil(getState("roadtraffic.0.Arbeit.route.duration").val / 60);
         let stau0 = false;
         let staustufe0 = 0;
         let delta = minuten0 - minuten0_durchschnitt;
         let via;
         let blitzer;
         let stauinfo;
         let wetterinfo;                                                 
       
         if (delta >= stauStufe1AbMinuten) {stau0 = true; staustufe0 = 1}
         if (delta >= stauStufe2AbMinuten) {staustufe0 = 2}
         if (delta >= stauStufe3AbMinuten) {staustufe0 = 3}  
                      
         mySetState(idStau_0, stau0, 'boolean', 'Stau auf Route Arbeit');    
         mySetState(idStaustufe_0, staustufe0, 'number', 'Staustufe auf Route Arbeit (0-3)');    
         mySetState(idDelta_0, delta, 'number', 'Unterschied zur durchschnittlichen Fahrzeit');    
         mySetState(idFahrzeit_0, minuten0, 'number', 'Fahrzeit auf Route Arbeit');
      
         if (getState("roadtraffic.0.Arbeit.route.distance").val > 17500) {
             via = "A73";                    
         } else if (getState("roadtraffic.0.Arbeit.route.distance").val > 15000 && getState("roadtraffic.0.Arbeit.route.distance").val < 16000) {
             via = "Münchner Straße";
         } else if (getState("roadtraffic.0.Arbeit.route.distance").val > 17000 && getState("roadtraffic.0.Arbeit.route.distance").val < 17500) {
             via = "Kornburg";                   
         } else if (getState("roadtraffic.0.Arbeit.route.distance").val > 14000 && getState("roadtraffic.0.Arbeit.route.distance").val < 1500) {
             via = "Langwasser";                   
         } else if (getState("roadtraffic.0.Arbeit.route.distance").val > 16000 && getState("roadtraffic.0.Arbeit.route.distance").val < 17000) {
             via = "Trierer Straße";                   
         }                                                                                                                                                                                                
       
         mySetState(idVia_0, via, 'string', 'Fahrt über Route Arbeit');
      
         if (getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.fixedTraps").val == '[]' && getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.mobileTraps").val == '[]'){
             blitzer = 'Keine Blitzer';
         } else {
             blitzer = 'Achtung Blitzer';
         }    
         
         mySetState(idBlitzer_0, blitzer, 'string', 'Blitzer auf Route Arbeit');
      
         if (getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.accidents").val == '[]' && getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.objects").val == '[]' && getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.roadWorks").val == '[]' && getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.trafficJams").val == '[]'){
             stauinfo = 'Keine Informationen zu Staus, Baustellen, Unfällen, oder Gegenständen vorhanden!';
         } else {
             stauinfo = 'Ja';
         }    
         
         mySetState(idStauinfo_0, stauinfo, 'string', 'Stau, Bauarbeiten, Unfälle, oder Gegenstände auf Route Arbeit');
      
         if (getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.fog").val == '[]' && getState("radar-trap.0.7HmkQwfB0dDfO3AU.8cJD1cCQ650SHmZb.sleekness").val == '[]'){
             wetterinfo = 'Keine Informationen zu wetterbedingten Störungen vorhanden!';
         } else {
             wetterinfo = 'Ja';
         }    
      
         mySetState(idWetterinfo_0, wetterinfo, 'string', 'Wetterbedingte Störungen auf Route Arbeit');
      }
      
      function mySetState(id, val, type, name, write = true) {
         if (existsState(id)) {
             setState(id, val, true);
         } else {
             createState(id, {
                 'name': name,
                 'type': type,
                 'read': true,
                 'write': write
             }, function () {
                 setState(id, val, true);
             });
         }
      }
      
      

      posted in Tester
      O
      Oli
    • RE: [Gelöst] Benötige Hilfe mit Node-Red in Verbindung mit homee

      @mickym

      sorry, kaum sucht man 3 Stunden, hat man den Fehler auch gefunden
      df692219-923a-4150-b79e-c2220af292bf-image.png
      Da war noch der Filter auf die Attribute drin

      Jetzt laufen beide Flows optimal, nochmals danke für deine Geduld und Hilfe 👍

      posted in Node-Red
      O
      Oli
    • RE: [Javascript] für Warnungen von Lebensmittelwarnung

      @SBorg,

      danke noch mal für deine Arbeit.

      Habe auch noch etwas nachgebessert, zur besseren Übersicht, habe ich Trennlinien zwischen den Meldungen eingefügt.

      8bc3cd88-2731-43e4-9ed9-d60ed785b70f-image.png

      Hier das Script:

       /*VIS Lebensmittelwarnungen
      
      Bringt einen RSS-Feed als Tabelle in ioBroker
      setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
      
      
      erstellt: 11.05.2017 von Torsten (auf Basis von Bluefox Code und Pix)
      Script angepasst : 28.10.2019 von Oliver
      */
      
      var idFeedTabelle = 'RSS-Feed.Lebensmittelwarnungen.Tabelle';
      
      var forceCreation = false;
          
      createState(idFeedTabelle, '', forceCreation, {
          write: true,
          read: true,
          name: 'RSS Feed Lebensmittelwarnungen Tabelle',
          type: 'string',
          desc: 'Lebensmittelwarnungen RSS Feed als HTML Tabelle',
          role: 'html'
      });
      
      var link = 'https://www.lebensmittelwarnung.de/bvl-lmw-de/opensaga/feed/alle/bayern.rss';
      
      var quer = false ;
      
      function RSS_einlesen () {
          var parseString = require('xml2js').parseString;
          var request = require('request');
      
          request(link, function (error, response, body) {
              if (!error && response.statusCode == 200) {
          
                  parseString(body, {
                      explicitArray: false,
                      mergeAttrs: true
                  },
                  function (err, result) {
                      //log(JSON.stringify(result, null, 2));
                      if (err) {
                          log("Fehler: " + err, 'error');
                      } else {    
                          var tabelle;
                          if (quer) {
                              // Titel links, Inhalt rechts
                              tabelle ='<table class="rss_feed"><thead><tr><th>Titel</th><th>Produktwarnungen</th></tr></thead><tbody>';
                              for (var i = 0; i <result.rss.channel.item.length; i++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '-----------------------------------------------------------------------------------------</td></tr>';
                              }
                          } else {
                              // Titel oben, INhalt darunter (wie in der Zeitung)
                              tabelle ='<table class="rss_feed"><thead><tr><th>Produktwarnungen</th><tr><tr></tr></thead><tbody>';
                              for (var j = 0; j <result.rss.channel.item.length; j++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[j].title + '</td></tr><tr><td>' + result.rss.channel.item[j].description + '-----------------------------------------------------------------------------------------</td></tr>';
                              }
                          }
                          tabelle += '</tbody></table>';  
                          setState(idFeedTabelle, tabelle);
                      }
                  });
              } else  {
                  log(error, 'error');
              }
          });   // Ende request 
          log('RSS-Feed ' + link + ' eingelesen');
      }
      
      schedule("*/10 * * * *", RSS_einlesen);  // alle 10 Minuten
      RSS_einlesen();
      

      posted in Praktische Anwendungen (Showcase)
      O
      Oli
    • RE: Ölpreis

      @sigi234

      Anbei das View
      Heizölview.txt

      Übrigens dein Wetterview ist genial.

      Gruß Oliver

      posted in ioBroker Allgemein
      O
      Oli

    Latest posts made by Oli

    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      ja, ist so, http Status ist 200 und gleichzeitig kommt die Fehlermeldung

      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      ich hoffe, dass ich jetzt das richtige erwischt habe

      Request URL
      http://192.168.2.222:8082/vis-2/widgets/vis-2-widgets-rssfeed/customWidgets.js
      Request Method
      GET
      Status Code
      200 OK
      Remote Address
      192.168.2.222:8082
      Referrer Policy
      strict-origin-when-cross-origin
      cache-control
      public, max-age=60
      connection
      keep-alive
      content-encoding
      gzip
      content-type
      application/javascript; charset=utf-8
      date
      Sat, 02 Aug 2025 10:36:33 GMT
      etag
      W/"f28-m6ffyixFsaIxy+qdViuvo0tnzh0"
      keep-alive
      timeout=5
      transfer-encoding
      chunked
      vary
      Accept-Encoding
      accept
      */*
      accept-encoding
      gzip, deflate
      accept-language
      de,de-DE;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
      cache-control
      no-cache
      connection
      keep-alive
      host
      192.168.2.222:8082
      pragma
      no-cache
      referer
      http://192.168.2.222:8082/vis-2/edit.html
      user-agent
      Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0
      
      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      ich verwende edge, chrome und silk überall das gleiche

      vielleicht hilft dir das weiter:

      hub.ts:494 
       Uncaught (in promise) TypeError: Ut(...).isOlderThan is not a function
          at qt (hub.ts:494:65)
          at sdk.ts:19:15
          at t.init (sdk.ts:91:3)
          at Object._initializeSentry (widgets.min.js:1:20151)
          at Object.initializeSentry (widgets.min.js:1:19863)
      qt	@	hub.ts:494
      (anonymous)	@	sdk.ts:19
      t.init	@	sdk.ts:91
      _initializeSentry	@	widgets.min.js:1
      initializeSentry	@	widgets.min.js:1
      await in initializeSentry		
      (anonymous)	@	materialdesign.js:35
      (anonymous)	@	widgets.min.js:1
      (anonymous)	@	widgets.min.js:1
      (anonymous)	@	visEngine.jsx:1199
      Promise.then		
      emit	@	visEngine.jsx:1199
      getObject	@	widgets.min.js:1
      getVersion	@	widgets.min.js:1
      (anonymous)	@	materialdesign.js:32
      (anonymous)	@	widgets.min.js:1
      setTimeout		
      waitForVisConnected	@	widgets.min.js:1
      showVersion	@	materialdesign.js:31
      (anonymous)	@	widgets.min.js:1
      customWidgets.js:2 
       Uncaught SyntaxError: Cannot use import statement outside a module (at customWidgets.js:2:1)
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      Promise.catch		
      (anonymous)	@	visLoadWidgets.tsx:196
      n	@	visLoadWidgets.tsx:173
      (anonymous)	@	visLoadWidgets.tsx:326
      Promise.then		
      (anonymous)	@	visLoadWidgets.tsx:326
      (anonymous)	@	visLoadWidgets.tsx:254
      Promise.then		
      r	@	visLoadWidgets.tsx:225
      (anonymous)	@	visWidgetsCatalog.tsx:302
      setTimeout		
      (anonymous)	@	visWidgetsCatalog.tsx:301
      collectRxInformation	@	visWidgetsCatalog.tsx:300
      onWidgetsLoaded	@	Runtime.jsx:813
      onLoaded	@	Runtime.jsx:1028
      loadWidgets	@	visEngine.jsx:1529
      await in loadWidgets		
      (anonymous)	@	visEngine.jsx:208
      Promise.then		
      Mt	@	visEngine.jsx:196
      
      
      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      Ordner werden angelegt und befüllt

      0ba60327-3abc-406f-b750-6f27795658d7-image.png

      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      da scheint alles in Ordnung zu sein

      Windows PowerShell
      Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
      
      Installieren Sie die neueste PowerShell für neue Funktionen und Verbesserungen! https://aka.ms/PSWindows
      
      PS C:\Users\Oliver\Desktop> chkdsk
      Der Typ des Dateisystems ist NTFS.
      Die Volumebezeichnung lautet Windows.
      
      WARNUNG! Der Parameter /F wurde nicht angegeben.
      CHKDSK wird im schreibgeschützten Modus ausgeführt.
      
      Phase 1: Die Basisdatei-Systemstruktur wird untersucht...
       1443072 Datensätze verarbeitet.
      Dateiüberprüfung beendet.
      Phasendauer (Datei-Datensatz Überprüfung): 20.68 Sekunden.
       19625 große Datensätze verarbeitet.
      Phasendauer (Wiederherstellung für verwaisten Datei-Datensatz): 11.33 Millisekunden.
       0 ungültige Datensätze verarbeitet.
      Phasendauer (Prüfung auf falschen Datei-Datensatz): 0.44 Millisekunden.
      
      Phase 2: Die Dateinamenverknüpfung wird untersucht...
       133106 Analysedatensätze verarbeitet.
       1630634 Indexeinträge verarbeitet.
      Indexüberprüfung beendet.
      Phasendauer (Indexüberprüfung): 13.83 Sekunden.
       0 nicht indizierte Dateien überprüft.
      Phasendauer (Wiederverbindung für verwaisten Datensatz): 2.74 Sekunden.
       0 nicht indizierte Dateien wiederhergestellt.
      Phasendauer (Wiederherstellung für verwaiste Datensatz): 0.45 Millisekunden.
       133106 Analysedatensätze verarbeitet.
      Phasendauer (Überprüfung von Analysepunkts und Objekt-ID): 340.07 Millisekunden.
      
      Phase 3: Sicherheitsbeschreibungen werden untersucht...
      Überprüfung der Sicherheitsbeschreibungen beendet.
      Phasendauer (Überprüfung für Sicherheits-Deskriptor): 58.42 Millisekunden.
       93782 Datendateien verarbeitet.
      Phasendauer (Datenattributüberprüfung): 1.20 Millisekunden.
      CHKDSK überprüft USN-Journal...
       40970720 USN-Bytes verarbeitet.
      Die Überprüfung von USN-Journal ist abgeschlossen.
      Phasendauer (USN-Journalüberprüfung): 173.53 Millisekunden.
      
      Dateisystem wurde überprüft, keine Probleme festgestellt.
      Keine weiteren Aktionen erforderlich.
      
      999060479 KB Speicherplatz auf dem Datenträger insgesamt
      757963848 KB in 546556 Dateien
         308416 KB in 93783 Indizes
              0 KB in fehlerhaften Sektoren
        1900287 KB vom System benutzt
          65536 KB von der Protokolldatei belegt
      238887928 KB auf dem Datenträger verfügbar
      
           4096 Bytes in jeder Zuordnungseinheit
      249765119 Zuordnungseinheiten auf dem Datenträger insgesamt
       59721982 Zuordnungseinheiten auf dem Datenträger verfügbar
      Gesamtdauer: 37.85 Sekunden (37859 ms).
      
      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      Ich habe ioBroker auf Windows installiert, da geht das glaube ich nicht

      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      Adapter deinstallieren und wieder installieren hat leider auch nichts gebracht.

      Meine Adapter sind alle auf dem aktuellsten Stand

      In der Version 1.1.2 sind alle Widgets wieder da

      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      Habe jetzt alles probiert, aber leider werden die Widgets nicht angezeigt

      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      sorry, aber die Widgets werden bei mir trotzdem nicht angezeigt, upload wurde durchgeführt und alle betroffenen Adapter wurden neu gestartet.
      Meine VIS-2 Version ist die 2.9.64

      Hier mal die Fehler aus der Konsole

      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous)	@	visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198 
       Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous)	@	visLoadWidgets.tsx:198
      
      posted in Tester
      O
      Oli
    • RE: Test/Support für Adapter rssfeed und vis-2-widgets-rssfeed

      @oliverio
      ich habe das gleiche Problem wie @trojanhector, ein "iob upload all" und ein Neustart des VIS-2 Adapters bringt keinen Erfolg.

      Installierte VIS-Version: 2.9.64

      Uncaught SyntaxError: Cannot use import statement outside a module
      visLoadWidgets.tsx:197  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous) @ visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous) @ visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous) @ visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous) @ visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous) @ visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous) @ visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous) @ visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      (anonymous) @ visLoadWidgets.tsx:198
      visLoadWidgets.tsx:197  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: Error: Cannot load vis2rssfeedWidgets from ./widgets/vis-2-widgets-rssfeed/customWidgets.js
      (anonymous) @ visLoadWidgets.tsx:197
      visLoadWidgets.tsx:198  Cannot load widget system.adapter.vis-2-widgets-rssfeed.0: {}
      
      posted in Tester
      O
      Oli
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo