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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. RSS Parser

NEWS

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

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

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

RSS Parser

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
48 Beiträge 11 Kommentatoren 11.8k Aufrufe 7 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • L Offline
    L Offline
    lalam
    schrieb am zuletzt editiert von
    #27

    Hallo @ *,

    bohre gerade meine LED Matrix Anzeige auf 2x (8x128) auf und würde gern in der unteren Zeile einen Newsfeed laufen lassen. Habe das Script auf einem separaten JS-Adapter installiert, finde jetzt aber die Daten nicht. Wo schreibt der das hin?????? Oder mache ich da einen Denkfehler?

    Danke und Grüße

    Lars

    Bin ich blöd! Habs gefunden :-)

    Ich versuche es mal umzuschreiben dass jeweils die 5 aktuellsten Headlines in eine Variable geschrieben werden - das Matrix Display gibt nur eine Zeichenkette aus …

    1 Antwort Letzte Antwort
    0
    • marcusklM Offline
      marcusklM Offline
      marcuskl
      schrieb am zuletzt editiert von
      #28

      Wo finde ich jetzt den aktuellen Skript ?

      Host: Intel Nuc6cayh (16GB Ram, 240GB SSD) mit Proxmox.

      Iobroker VM, InfluxDB LXC, Pihole LXC, Tasmoadmin LXC, Easy2connect VM

      1 Antwort Letzte Antwort
      0
      • P pix

        Danke, freut mich!

        Hab nochmal ne andere Formatierung eingebaut. Für diesen Inhalt ist diese Darstellung besser:

        261_bildschirmfoto_2015-11-09_um_17.50.12.jpg

        CSS:

        /* LAYOUT ÜBEREINANDER ************** */
        
        /* ### Table head (Spaltentitel) ### */
        /* Überschrift weglassen */
        .rss_feed thead {
            display:none;
        }
        
        /* ### Inhalt des Feeds ### */
        /* beide Spalten */
        .rss_feed tr {
            text-align: left;
        }
        
        /* Tablerow mit Titel */
        .rss_feed tr:nth-child(odd) {
            color: rgba(230,230,250,1);
            font-size: 110%;
            font-weight: 800;
        }
        
        /* Tablerow mit inhalt */
        .rss_feed tr:nth-child(even) {
            color: rgba(230,230,250,1);
            font-size: 80%;
        }
        
        .rss_feed tr:nth-child(even) td {
            padding-bottom: 2em;   
        }
        
        

        Scriptteil ersetzen

        } else {      
                            /* 
                            // Titel links, Inhalt rechts
                            var tabelle ='';
                            for(var i = 0; i <result.rss.channel.item.length; i++)/{/tabelle/+="<tr><td>" result.rss.channel.item[i].title/'</td=""></result.rss.channel.item.length;>';
                            }
                            */
                            // Titel oben, INhalt darunter (wie in der Zeitung)
                            var tabelle ='
        
        | Titel | Beschreibung |
        | --- | --- |
        | ' + result.rss.channel.item[i].description + ' |
        
        ';
                            for(var i = 0; i <result.rss.channel.item.length; i++)/{/tabelle/+="<tr><td>" result.rss.channel.item[i].title/'</td=""></result.rss.channel.item.length;>';
                            }
                            tabelle += '
        
        | RSS-Feed |
        | --- |
        | ' + result.rss.channel.item[i].description + ' |
        
        ';  
                            setState(idFeedTabelle, tabelle);
                        }`
        

        Gruß

        Pix

        AphofisA Offline
        AphofisA Offline
        Aphofis
        schrieb am zuletzt editiert von
        #29

        @pix
        Wie und wo hast du das denn alles eingebunden!? Das sieht echt toll aus! Ich bin noch iobroker neuling und könnte eine wenig Griff unter die Flügel gebrauchen.
        Gruß Gordon

        P 1 Antwort Letzte Antwort
        0
        • AphofisA Aphofis

          @pix
          Wie und wo hast du das denn alles eingebunden!? Das sieht echt toll aus! Ich bin noch iobroker neuling und könnte eine wenig Griff unter die Flügel gebrauchen.
          Gruß Gordon

          P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #30

          @Aphofis Such mal nach "Mal zeigen will" oder so, da sind viele VIS Views vorgestellt.

          Gruß
          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          AphofisA 1 Antwort Letzte Antwort
          0
          • P pix

            @Aphofis Such mal nach "Mal zeigen will" oder so, da sind viele VIS Views vorgestellt.

            Gruß
            Pix

            AphofisA Offline
            AphofisA Offline
            Aphofis
            schrieb am zuletzt editiert von
            #31

            @pix OK Danke

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              senger1985
              schrieb am zuletzt editiert von
              #32

              @pix könntest du mal bitte über mein Script (Post 27) schauen und mir sagen, warum er mir die Daten nicht ausgibt?

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                pix
                schrieb am zuletzt editiert von
                #33

                Hallo Senger1985,

                das o.g. Skript ist ganz schön zerhauen (durch die Änderung der Forensoftware). Du müsstest eigentlich das Originalskript aus deiner Installation neu posten.

                Kannst du dir aber sparen, denn es liegt nicht am Skript.
                Der Link zur XML-Datei funktioniert nicht mehr bzw. die Information wird nicht mehr darin bereitgestellt:
                Bildschirmfoto 2019-10-29 um 09.17.15.jpg

                Gruß
                Pix

                ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                S 1 Antwort Letzte Antwort
                0
                • P pix

                  Hallo Senger1985,

                  das o.g. Skript ist ganz schön zerhauen (durch die Änderung der Forensoftware). Du müsstest eigentlich das Originalskript aus deiner Installation neu posten.

                  Kannst du dir aber sparen, denn es liegt nicht am Skript.
                  Der Link zur XML-Datei funktioniert nicht mehr bzw. die Information wird nicht mehr darin bereitgestellt:
                  Bildschirmfoto 2019-10-29 um 09.17.15.jpg

                  Gruß
                  Pix

                  S Offline
                  S Offline
                  senger1985
                  schrieb am zuletzt editiert von
                  #34

                  @pix danke, für eine Antwort.

                  Wenn ich Link Text aufrufe, bekomme ich aber noch die Daten angezeigt.

                  /* VIS VBB Newsfeed
                  {1}
                  Bringt einen RSS-Feed als Tabelle in ioBroker
                  setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
                  {1}
                  {1}
                  erstellt: 11.05.2017 von Torsten (auf Basis von Bluefox Code und Pix) 
                  */
                   
                   
                  createState('RSS-Feed.VBB.Tabelle', {write: true, read: true, name: 'RSS Feed VBB Tabelle', type: 'string', desc: 'VBB RSS Feed als HTML Tabelle'});
                  createState('RSS-Feed.Optin', true, {write: true, read: true, name: 'Optin RSS Feeds abrufen', type: 'boolean', desc: 'Sollen RSS-Feeds abgerufen werden?'});
                   
                  var link = 'https://www.vbb.de/broken_lifts.xml';
                  //var vbb = 'vbb-name';
                   
                  var idOptin = 'RSS-Feed.Optin',
                      optin_beschreibung = 'RSS Feed',
                      idFeedTabelle = 'RSS-Feed.VBB.Tabelle';
                   
                  function RSS_einlesen () { // alle 5 Minuten
                      var optin = getState(idOptin).val;
                      var parseString = require('xml2js').parseString;
                      var request = require('request');
                   
                      if (optin) 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);
                                  } else {      
                                      /*
                                      // Titel links, Inhalt rechts
                                      var 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>'</br>'<td>' + result.rss.channel.item[i].description + '</td></tr>';
                                      }
                                      */
                                      
                                      // Titel oben, INhalt darunter (wie in der Zeitung)
                                      var tabelle ='<table class="rss_feed"><thead><tr><th>BVG Aufzugsstörung</p></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></tr><tr><td>' + result.rss.channel.item[i].description + '</td></tr><tr><td>' + result.rss.channel.item[i].vbb/-name + '</td></tr>';
                                      }
                                      tabelle += '</tbody></table>';  
                                      setState(idFeedTabelle, tabelle);
                   
                                  }
                              });
                          } else  {
                              log(error);
                          }
                      });   // Ende request 
                      log('RSS-Feed ' + link + ' eingelesen');
                  }
                   
                  schedule("*/10 * * * *", RSS_einlesen); 
                  RSS_einlesen();
                   
                   
                  // Opt In setzen - Logging
                  on( { 
                      id: idOptin,
                      change: 'ne'
                  }, function (obj) {
                      if (obj.newState.val === false || obj.newState.val =='false') {
                          log('Opt in Variable <' + optin_beschreibung + ' Push> auf <aus/' + obj.newState.val + '> gesetzt ', 'info');
                      } else if (obj.newState.val === true || obj.newState.val =='true') {
                          log('Opt in Variable <' + optin_beschreibung + ' Push> auf <ein/' + obj.newState.val + '> gesetzt ', 'info');
                      }
                  });
                  
                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    senger1985
                    schrieb am zuletzt editiert von
                    #35

                    Das sieht ja schon wieder so Kacke aus

                    P 1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #36

                      Ich schieße gleich mal nach:
                      Der Link hat sich nur geändert: https://www.vbb.de/broken_lifts.xml

                      Ich checke gerade das Skript ....

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      S 1 Antwort Letzte Antwort
                      0
                      • P pix

                        Ich schieße gleich mal nach:
                        Der Link hat sich nur geändert: https://www.vbb.de/broken_lifts.xml

                        Ich checke gerade das Skript ....

                        S Offline
                        S Offline
                        senger1985
                        schrieb am zuletzt editiert von
                        #37

                        @pix danke dir.

                        Bin aber jetzt erstmal bis heute Abend unterwegs.

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          pix
                          schrieb am zuletzt editiert von pix
                          #38

                          So, habe mal das Skript etwas angepasst:

                          /* VIS VBB Tabelle
                          
                          Bringt einen RSS-Feed als Tabelle in ioBroker
                          setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
                          
                          für http://forum.iobroker.net/viewtopic.php?f=21&t=1683
                          
                          08.11.2015 erstellt von Pix (auf Basis von Bluefox Code) für Griesemer
                          29.10.2019 angepasst von Pix (XML Element Namen mit Bindstrich (Hyphen) werden nkicht ausgelesen "vbb-name")
                          
                          */
                          createState('RSS-Feed.VBB.Tabelle', "", {
                             write: true,
                             read: true,
                             name: 'RSS Feed VBB Tabelle',
                             type: 'string',
                             desc: 'VBB RSS Feed als HTML Tabelle'
                          });
                          createState('RSS-Feed.VBB.Optin', true, {
                             write: true,
                             read: true,
                             name: 'Optin RSS Feeds abrufen',
                             type: 'boolean',
                             desc: 'Sollen RSS-Feeds abgerufen werden?'
                          });
                          var link = 'https://www.vbb.de/broken_lifts.xml';
                          var idOptin = 'RSS-Feed.Optin',
                             optin_beschreibung = 'RSS Feed',
                             idFeedTabelle = 'RSS-Feed.VBB.Tabelle';
                          
                          function RSS_einlesen() { // alle 5 Minuten
                             var optin = getState(idOptin).val;
                             var parseString = require('xml2js').parseString;
                             var request = require('request');
                             if (optin) request(link, function (error, response, body) {
                             	if (!error && response.statusCode == 200) {
                             		// Unerlaubte Bindestriche ind en XML Element Namen ersetzen
                             		body = body.replace(/vbb-name/g, "vbb_name");
                             		body = body.replace(/hafas-nr/g, "hafas_nr");
                             		body = body.replace(/aufzugs-id/g, "aufzugs_id");
                             		parseString(body, {
                             			explicitArray: false,
                             			mergeAttrs: true
                             		}, function (err, result) {
                             			//log(JSON.stringify(result, null, 2)); // für debug Zwecke
                             			var tabelle = '<table id="brokenlifts"><caption>Broken Lifts</caption><tbody>'; // Grundgerüst Tabelle, Caption kann ausgeblendet werden
                             			if (err) {
                             				log("Fehler: " + err);
                             				tabelle += '<tr><td>Fehler beim Einlesen</td></tr>'; // neue Zeile und Fehlermeldung in Tabelle
                             			} else {
                             				tabelle += '<thead><tr><td>Station</td><td>Status</td><td>Aktuelle Meldung</td></tr></thead>'; // neue Titel-Zeile mit drei Datenfeldern (diese werden in VIS formatiert)
                             				for (var i = 0; i < result.rss.channel.item.length; i++) {
                             					tabelle += '<tr><td>' + result.rss.channel.item[i].vbb_name + '</td><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '</td>'; // neue Tabellen-Zeile pro i 
                             				}
                             			}
                             			tabelle += '</tbody></table>'; // HTML-Tabelle schließen (mit und ohne Fehler, aber Tabellen Gerüst steht)
                             			setState(idFeedTabelle, tabelle);
                             		});
                             	} else {
                             		log(error);
                             	}
                             }); // Ende request 
                             log('RSS-Feed ' + link + ' eingelesen');
                          }
                          schedule("*/10 * * * *", RSS_einlesen);
                          RSS_einlesen();
                          // Opt In setzen - Logging
                          on({
                             id: idOptin,
                             change: 'ne'
                          }, function (obj) {
                             if (obj.newState.val === false || obj.newState.val == 'false') {
                             	log('Opt in Variable <' + optin_beschreibung + ' Push> auf <aus ' + obj.newstate.val + ' >gesetzt ', 'info');
                             } else if (obj.newState.val === true || obj.newState.val == 'true') {
                             	log('Opt in Variable <' + optin_beschreibung + ' Push> auf <ein ' + obj.newstate.val + ' >gesetzt ', 'info');
                             }
                          });
                          


                          Es gab noch ein Problem, ich musst edie unerlaubte XML Element Namen ersetzen. Einige hatten einen Bindestrich, dann streikt der Parser.

                          Als Widget einfach ein HTML Widget nehmen und den Datenpunkt der TAbelle als Binding einfügen {javascript.2.RSS-Feed.VBB.Tabelle}

                          Bildschirmfoto 2019-10-29 um 10.34.50.jpg

                          [{"tpl":"tplHtml","data":{"g_fixed":false,"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,"html":"{javascript.2.RSS-Feed.VBB.Tabelle}"},"style":{"left":"156px","top":"326px","z-index":"20","background-color":"blue","width":"628px","height":"auto"},"widgetSet":"basic"}]
                          

                          Bildschirmfoto 2019-10-29 um 10.33.51.jpg

                          Gruß
                          Pix

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            senger1985
                            schrieb am zuletzt editiert von
                            #39

                            @pix du bist einfach super.

                            Vielen, vielen Dankt und ich habe mich dumm und dämlich gesucht, woran es gelegen hat.

                            1 Antwort Letzte Antwort
                            1
                            • BostilB Offline
                              BostilB Offline
                              Bostil
                              schrieb am zuletzt editiert von
                              #40

                              Hallo RSS-Freunde,

                              würde auch gerne den RSS-Feed der Tagesschau z. B. über das Script von @pix einbinden, aber scheitere. Folgendermaßen bin ich vorgegangen:

                              • Skript von @pix 1:1 kopiert
                              • Link der Tagesschau entsprechend in Zeile 26 des Scrips ersetzt: http://www.tagesschau.de/xml/rss2
                              • Script gestartet
                              • Widget ebenfalls in meine View kopiert
                              • allerdings erscheint im "Live"Modus der View in der HTML-Tabelle bloß "undefined"

                              Habt ihr eine Idee, was ich falsch mache ggf. noch bedenken muss, wenn ich das Script / Widget von oben einfach in meine View kopiere ?

                              Danke euch!

                              S 1 Antwort Letzte Antwort
                              0
                              • BostilB Bostil

                                Hallo RSS-Freunde,

                                würde auch gerne den RSS-Feed der Tagesschau z. B. über das Script von @pix einbinden, aber scheitere. Folgendermaßen bin ich vorgegangen:

                                • Skript von @pix 1:1 kopiert
                                • Link der Tagesschau entsprechend in Zeile 26 des Scrips ersetzt: http://www.tagesschau.de/xml/rss2
                                • Script gestartet
                                • Widget ebenfalls in meine View kopiert
                                • allerdings erscheint im "Live"Modus der View in der HTML-Tabelle bloß "undefined"

                                Habt ihr eine Idee, was ich falsch mache ggf. noch bedenken muss, wenn ich das Script / Widget von oben einfach in meine View kopiere ?

                                Danke euch!

                                S Offline
                                S Offline
                                senger1985
                                schrieb am zuletzt editiert von
                                #41

                                @Bostil siehe Post von Pix.

                                Zitat:
                                "Als Widget einfach ein HTML Widget nehmen und den Datenpunkt der TAbelle als Binding einfügen {javascript.2.RSS-Feed.VBB.Tabelle}"

                                1 Antwort Letzte Antwort
                                1
                                • BostilB Offline
                                  BostilB Offline
                                  Bostil
                                  schrieb am zuletzt editiert von Bostil
                                  #42

                                  Danke dir @senger1985 erstmal. Ich vermute, ich übersehe bloß eine "Kleinigkeit". Ich werde mal konkreter:

                                  1. Das ist nun mein Script (zu 100% das von @pix, bloß den RSS-Feed mal angepasst) und unter common > RSS-Feed abgespeichert und gestartet


                                  /* VIS VBB Tabelle
                                  {1}
                                  Bringt einen RSS-Feed als Tabelle in ioBroker
                                  setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
                                  {1}
                                  für http://forum.iobroker.net/viewtopic.php?f=21&t=1683
                                  {1}
                                  08.11.2015 erstellt von Pix (auf Basis von Bluefox Code) für Griesemer
                                  29.10.2019 angepasst von Pix (XML Element Namen mit Bindstrich (Hyphen) werden nkicht ausgelesen "vbb-name")
                                  {1}
                                  */
                                  createState('RSS-Feed.VBB.Tabelle', "", {
                                  write: true,
                                  read: true,
                                  name: 'RSS-Feed VBB Tabelle',
                                  type: 'string',
                                  desc: 'VBB RSS Feed als HTML Tabelle'
                                  });
                                  createState('RSS-Feed.VBB.Optin', true, {
                                  write: true,
                                  read: true,
                                  name: 'Optin RSS Feeds abrufen',
                                  type: 'boolean',
                                  desc: 'Sollen RSS-Feeds abgerufen werden?'
                                  });
                                  var link = 'https://www.computerbase.de/rss/news.xml';
                                  var idOptin = 'RSS-Feed.Optin',
                                  optin_beschreibung = 'RSS Feed',
                                  idFeedTabelle = 'RSS-Feed.VBB.Tabelle';

                                  function RSS_einlesen() { // alle 5 Minuten
                                  var optin = getState(idOptin).val;
                                  var parseString = require('xml2js').parseString;
                                  var request = require('request');
                                  if (optin) request(link, function (error, response, body) {
                                  if (!error && response.statusCode == 200) {
                                  // Unerlaubte Bindestriche ind en XML Element Namen ersetzen
                                  body = body.replace(/vbb-name/g, "vbb_name");
                                  body = body.replace(/hafas-nr/g, "hafas_nr");
                                  body = body.replace(/aufzugs-id/g, "aufzugs_id");
                                  parseString(body, {
                                  explicitArray: false,
                                  mergeAttrs: true
                                  }, function (err, result) {
                                  //log(JSON.stringify(result, null, 2)); // für debug Zwecke
                                  var tabelle = '<table id="brokenlifts"><caption>Broken Lifts</caption><tbody>'; // Grundgerüst Tabelle, Caption kann ausgeblendet werden
                                  if (err) {
                                  log("Fehler: " + err);
                                  tabelle += '<tr><td>Fehler beim Einlesen</td></tr>'; // neue Zeile und Fehlermeldung in Tabelle
                                  } else {
                                  tabelle += '<thead><tr><td>Station</td><td>Status</td><td>Aktuelle Meldung</td></tr></thead>'; // neue Titel-Zeile mit drei Datenfeldern (diese werden in VIS formatiert)
                                  for (var i = 0; i < result.rss.channel.item.length; i++) {
                                  tabelle += '<tr><td>' + result.rss.channel.item[i].vbb_name + '</td><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '</td>'; // neue Tabellen-Zeile pro i
                                  }
                                  }
                                  tabelle += '</tbody></table>'; // HTML-Tabelle schließen (mit und ohne Fehler, aber Tabellen Gerüst steht)
                                  setState(idFeedTabelle, tabelle);
                                  });
                                  } else {
                                  log(error);
                                  }
                                  }); // Ende request
                                  log('RSS-Feed ' + link + ' eingelesen');
                                  }
                                  schedule("*/10 * * * *", RSS_einlesen);
                                  RSS_einlesen();
                                  // Opt In setzen - Logging
                                  on({
                                  id: idOptin,
                                  change: 'ne'
                                  }, function (obj) {
                                  if (obj.newState.val === false || obj.newState.val == 'false') {
                                  log('Opt in Variable <' + optin_beschreibung + ' Push> auf <aus ' + obj.newstate.val + ' >gesetzt ', 'info');
                                  } else if (obj.newState.val === true || obj.newState.val == 'true') {
                                  log('Opt in Variable <' + optin_beschreibung + ' Push> auf <ein ' + obj.newstate.val + ' >gesetzt ', 'info');
                                  }
                                  });

                                  1. weiterhin habe ich sein Widget einfach kopiert, aber den Pfad auf meinen (siehe unterhalb) angepasst:

                                  Objekte:
                                  Anmerkung 2019-12-29 203025.png

                                  Widget im View:
                                  Anmerkung 2019-12-29 203410.png

                                  1. den Javascript Adapter habe ich um "request" + "xml2js" ergänzt und den Adapter neu gestartet

                                  Erhalte bereits im Script folgende Warnung:


                                  20:25:53.036 info javascript.0 (16616) Start javascript script.js.common.RSS-Feed
                                  %(#c91616)[20:25:53.101 warn javascript.0 (16616) at RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                  20:25:53.102 warn javascript.0 (16616) at script.js.common.RSS-Feed:66:1]
                                  20:25:53.103 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen
                                  20:25:53.104 info javascript.0 (16616) script.js.common.RSS-Feed: registered 6 subscriptions and 1 schedule
                                  20:30:00.021 warn javascript.0 (16616) at Object.RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                  20:30:00.026 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen

                                  S P 2 Antworten Letzte Antwort
                                  0
                                  • BostilB Bostil

                                    Danke dir @senger1985 erstmal. Ich vermute, ich übersehe bloß eine "Kleinigkeit". Ich werde mal konkreter:

                                    1. Das ist nun mein Script (zu 100% das von @pix, bloß den RSS-Feed mal angepasst) und unter common > RSS-Feed abgespeichert und gestartet


                                    /* VIS VBB Tabelle
                                    {1}
                                    Bringt einen RSS-Feed als Tabelle in ioBroker
                                    setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
                                    {1}
                                    für http://forum.iobroker.net/viewtopic.php?f=21&t=1683
                                    {1}
                                    08.11.2015 erstellt von Pix (auf Basis von Bluefox Code) für Griesemer
                                    29.10.2019 angepasst von Pix (XML Element Namen mit Bindstrich (Hyphen) werden nkicht ausgelesen "vbb-name")
                                    {1}
                                    */
                                    createState('RSS-Feed.VBB.Tabelle', "", {
                                    write: true,
                                    read: true,
                                    name: 'RSS-Feed VBB Tabelle',
                                    type: 'string',
                                    desc: 'VBB RSS Feed als HTML Tabelle'
                                    });
                                    createState('RSS-Feed.VBB.Optin', true, {
                                    write: true,
                                    read: true,
                                    name: 'Optin RSS Feeds abrufen',
                                    type: 'boolean',
                                    desc: 'Sollen RSS-Feeds abgerufen werden?'
                                    });
                                    var link = 'https://www.computerbase.de/rss/news.xml';
                                    var idOptin = 'RSS-Feed.Optin',
                                    optin_beschreibung = 'RSS Feed',
                                    idFeedTabelle = 'RSS-Feed.VBB.Tabelle';

                                    function RSS_einlesen() { // alle 5 Minuten
                                    var optin = getState(idOptin).val;
                                    var parseString = require('xml2js').parseString;
                                    var request = require('request');
                                    if (optin) request(link, function (error, response, body) {
                                    if (!error && response.statusCode == 200) {
                                    // Unerlaubte Bindestriche ind en XML Element Namen ersetzen
                                    body = body.replace(/vbb-name/g, "vbb_name");
                                    body = body.replace(/hafas-nr/g, "hafas_nr");
                                    body = body.replace(/aufzugs-id/g, "aufzugs_id");
                                    parseString(body, {
                                    explicitArray: false,
                                    mergeAttrs: true
                                    }, function (err, result) {
                                    //log(JSON.stringify(result, null, 2)); // für debug Zwecke
                                    var tabelle = '<table id="brokenlifts"><caption>Broken Lifts</caption><tbody>'; // Grundgerüst Tabelle, Caption kann ausgeblendet werden
                                    if (err) {
                                    log("Fehler: " + err);
                                    tabelle += '<tr><td>Fehler beim Einlesen</td></tr>'; // neue Zeile und Fehlermeldung in Tabelle
                                    } else {
                                    tabelle += '<thead><tr><td>Station</td><td>Status</td><td>Aktuelle Meldung</td></tr></thead>'; // neue Titel-Zeile mit drei Datenfeldern (diese werden in VIS formatiert)
                                    for (var i = 0; i < result.rss.channel.item.length; i++) {
                                    tabelle += '<tr><td>' + result.rss.channel.item[i].vbb_name + '</td><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '</td>'; // neue Tabellen-Zeile pro i
                                    }
                                    }
                                    tabelle += '</tbody></table>'; // HTML-Tabelle schließen (mit und ohne Fehler, aber Tabellen Gerüst steht)
                                    setState(idFeedTabelle, tabelle);
                                    });
                                    } else {
                                    log(error);
                                    }
                                    }); // Ende request
                                    log('RSS-Feed ' + link + ' eingelesen');
                                    }
                                    schedule("*/10 * * * *", RSS_einlesen);
                                    RSS_einlesen();
                                    // Opt In setzen - Logging
                                    on({
                                    id: idOptin,
                                    change: 'ne'
                                    }, function (obj) {
                                    if (obj.newState.val === false || obj.newState.val == 'false') {
                                    log('Opt in Variable <' + optin_beschreibung + ' Push> auf <aus ' + obj.newstate.val + ' >gesetzt ', 'info');
                                    } else if (obj.newState.val === true || obj.newState.val == 'true') {
                                    log('Opt in Variable <' + optin_beschreibung + ' Push> auf <ein ' + obj.newstate.val + ' >gesetzt ', 'info');
                                    }
                                    });

                                    1. weiterhin habe ich sein Widget einfach kopiert, aber den Pfad auf meinen (siehe unterhalb) angepasst:

                                    Objekte:
                                    Anmerkung 2019-12-29 203025.png

                                    Widget im View:
                                    Anmerkung 2019-12-29 203410.png

                                    1. den Javascript Adapter habe ich um "request" + "xml2js" ergänzt und den Adapter neu gestartet

                                    Erhalte bereits im Script folgende Warnung:


                                    20:25:53.036 info javascript.0 (16616) Start javascript script.js.common.RSS-Feed
                                    %(#c91616)[20:25:53.101 warn javascript.0 (16616) at RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                    20:25:53.102 warn javascript.0 (16616) at script.js.common.RSS-Feed:66:1]
                                    20:25:53.103 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen
                                    20:25:53.104 info javascript.0 (16616) script.js.common.RSS-Feed: registered 6 subscriptions and 1 schedule
                                    20:30:00.021 warn javascript.0 (16616) at Object.RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                    20:30:00.026 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen

                                    S Offline
                                    S Offline
                                    senger1985
                                    schrieb am zuletzt editiert von
                                    #43

                                    @Bostil habe gerade selbst etwas getestet und umgeschrieben, aber leider auch keine Lösung gefunden.

                                    1 Antwort Letzte Antwort
                                    1
                                    • BostilB Bostil

                                      Danke dir @senger1985 erstmal. Ich vermute, ich übersehe bloß eine "Kleinigkeit". Ich werde mal konkreter:

                                      1. Das ist nun mein Script (zu 100% das von @pix, bloß den RSS-Feed mal angepasst) und unter common > RSS-Feed abgespeichert und gestartet


                                      /* VIS VBB Tabelle
                                      {1}
                                      Bringt einen RSS-Feed als Tabelle in ioBroker
                                      setzt die Library xml2js voraus (in Javascript Einstellungen zufügen)
                                      {1}
                                      für http://forum.iobroker.net/viewtopic.php?f=21&t=1683
                                      {1}
                                      08.11.2015 erstellt von Pix (auf Basis von Bluefox Code) für Griesemer
                                      29.10.2019 angepasst von Pix (XML Element Namen mit Bindstrich (Hyphen) werden nkicht ausgelesen "vbb-name")
                                      {1}
                                      */
                                      createState('RSS-Feed.VBB.Tabelle', "", {
                                      write: true,
                                      read: true,
                                      name: 'RSS-Feed VBB Tabelle',
                                      type: 'string',
                                      desc: 'VBB RSS Feed als HTML Tabelle'
                                      });
                                      createState('RSS-Feed.VBB.Optin', true, {
                                      write: true,
                                      read: true,
                                      name: 'Optin RSS Feeds abrufen',
                                      type: 'boolean',
                                      desc: 'Sollen RSS-Feeds abgerufen werden?'
                                      });
                                      var link = 'https://www.computerbase.de/rss/news.xml';
                                      var idOptin = 'RSS-Feed.Optin',
                                      optin_beschreibung = 'RSS Feed',
                                      idFeedTabelle = 'RSS-Feed.VBB.Tabelle';

                                      function RSS_einlesen() { // alle 5 Minuten
                                      var optin = getState(idOptin).val;
                                      var parseString = require('xml2js').parseString;
                                      var request = require('request');
                                      if (optin) request(link, function (error, response, body) {
                                      if (!error && response.statusCode == 200) {
                                      // Unerlaubte Bindestriche ind en XML Element Namen ersetzen
                                      body = body.replace(/vbb-name/g, "vbb_name");
                                      body = body.replace(/hafas-nr/g, "hafas_nr");
                                      body = body.replace(/aufzugs-id/g, "aufzugs_id");
                                      parseString(body, {
                                      explicitArray: false,
                                      mergeAttrs: true
                                      }, function (err, result) {
                                      //log(JSON.stringify(result, null, 2)); // für debug Zwecke
                                      var tabelle = '<table id="brokenlifts"><caption>Broken Lifts</caption><tbody>'; // Grundgerüst Tabelle, Caption kann ausgeblendet werden
                                      if (err) {
                                      log("Fehler: " + err);
                                      tabelle += '<tr><td>Fehler beim Einlesen</td></tr>'; // neue Zeile und Fehlermeldung in Tabelle
                                      } else {
                                      tabelle += '<thead><tr><td>Station</td><td>Status</td><td>Aktuelle Meldung</td></tr></thead>'; // neue Titel-Zeile mit drei Datenfeldern (diese werden in VIS formatiert)
                                      for (var i = 0; i < result.rss.channel.item.length; i++) {
                                      tabelle += '<tr><td>' + result.rss.channel.item[i].vbb_name + '</td><td>' + result.rss.channel.item[i].title + '</td><td>' + result.rss.channel.item[i].description + '</td>'; // neue Tabellen-Zeile pro i
                                      }
                                      }
                                      tabelle += '</tbody></table>'; // HTML-Tabelle schließen (mit und ohne Fehler, aber Tabellen Gerüst steht)
                                      setState(idFeedTabelle, tabelle);
                                      });
                                      } else {
                                      log(error);
                                      }
                                      }); // Ende request
                                      log('RSS-Feed ' + link + ' eingelesen');
                                      }
                                      schedule("*/10 * * * *", RSS_einlesen);
                                      RSS_einlesen();
                                      // Opt In setzen - Logging
                                      on({
                                      id: idOptin,
                                      change: 'ne'
                                      }, function (obj) {
                                      if (obj.newState.val === false || obj.newState.val == 'false') {
                                      log('Opt in Variable <' + optin_beschreibung + ' Push> auf <aus ' + obj.newstate.val + ' >gesetzt ', 'info');
                                      } else if (obj.newState.val === true || obj.newState.val == 'true') {
                                      log('Opt in Variable <' + optin_beschreibung + ' Push> auf <ein ' + obj.newstate.val + ' >gesetzt ', 'info');
                                      }
                                      });

                                      1. weiterhin habe ich sein Widget einfach kopiert, aber den Pfad auf meinen (siehe unterhalb) angepasst:

                                      Objekte:
                                      Anmerkung 2019-12-29 203025.png

                                      Widget im View:
                                      Anmerkung 2019-12-29 203410.png

                                      1. den Javascript Adapter habe ich um "request" + "xml2js" ergänzt und den Adapter neu gestartet

                                      Erhalte bereits im Script folgende Warnung:


                                      20:25:53.036 info javascript.0 (16616) Start javascript script.js.common.RSS-Feed
                                      %(#c91616)[20:25:53.101 warn javascript.0 (16616) at RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                      20:25:53.102 warn javascript.0 (16616) at script.js.common.RSS-Feed:66:1]
                                      20:25:53.103 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen
                                      20:25:53.104 info javascript.0 (16616) script.js.common.RSS-Feed: registered 6 subscriptions and 1 schedule
                                      20:30:00.021 warn javascript.0 (16616) at Object.RSS_einlesen (script.js.common.RSS-Feed:32:16)
                                      20:30:00.026 info javascript.0 (16616) script.js.common.RSS-Feed: RSS-Feed https://www.computerbase.de/rss/news.xml eingelesen

                                      P Offline
                                      P Offline
                                      pix
                                      schrieb am zuletzt editiert von
                                      #44

                                      @Bostil Frohes Neues! Du hast immer noch die VBB spezifischen Abfragen im Skript. Das Skript fragt die computerbase-Seite ab und versucht dann die gesperrten Rolltreppen zu finden. Kann ja nicht gehen.

                                      Schau mal hier, ob du einen besseren Ansatz findest:

                                      Altes RSS Parser Skript

                                      Gruß
                                      Pix

                                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                      S 1 Antwort Letzte Antwort
                                      1
                                      • BostilB Offline
                                        BostilB Offline
                                        Bostil
                                        schrieb am zuletzt editiert von
                                        #45

                                        Hallo @pix vielen Dank für deine Hilfe.

                                        Habe jetzt mal deinen Beitrag vom 05.11.2015 hier rausgekramt und erstmal alles (Script, CSS, Widget) eins zu eins übernommen, leider schlägt es noch fehl. Hast du noch im Kopf, welche Dinge im Script noch korrigiert werden mussten aufgrund zwischenzeitlichen Anpassungen ?

                                        Dankeschön.

                                        1 Antwort Letzte Antwort
                                        0
                                        • I Offline
                                          I Offline
                                          IOT
                                          schrieb am zuletzt editiert von IOT
                                          #46

                                          Hallo RRS Community
                                          spiele gerade mit dem Scripts um die aktuellen Verkehrsmeldungen aus meiner Gegen anzuzeigen. Im original "https://www.vbb.de/broken_lifts.xml" läufts super aber wenn ich es mit "https://www.oeamtc.at/feeds/verkehr/a9.xml" versuche bekomme ich keine Daten in die Tabelle. Hatte wer von euch das gleiche Problem? DANKE

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          840

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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