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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Javascript] für Warnungen von Lebensmittelwarnung

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    13
    1
    147

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

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

[Javascript] für Warnungen von Lebensmittelwarnung

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
javascriptlebensmittelwarnung
311 Posts 24 Posters 59.3k Views 31 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O Oli

    @Nashra

    da das Script nicht von mir ist und ich nicht der Script-Experte bin, muss ich mir das erst anschauen, was da möglich ist.

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

    @Oli sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

    @Nashra

    da das Script nicht von mir ist und ich nicht der Script-Experte bin,

    @Oli da könne wir uns zusammen tun, ich nämlich auch nicht :grin:
    Aber vllt kann uns da ja @SBorg aus der Patsche helfen.

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

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

    O 2 Replies Last reply
    0
    • NashraN Nashra

      @Oli sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

      @Nashra

      da das Script nicht von mir ist und ich nicht der Script-Experte bin,

      @Oli da könne wir uns zusammen tun, ich nämlich auch nicht :grin:
      Aber vllt kann uns da ja @SBorg aus der Patsche helfen.

      O Online
      O Online
      Oli
      wrote on last edited by
      #55

      @Nashra

      habe schon etwas daran gespielt, momentan sieht es so aus:

      b0497593-6cae-4706-8e79-6f6b3b865a05-image.png

      noch nicht perfekt, mal schauen, ob ich das Datum noch konvertiert bekomme.

      Gruß
      Oliver

      1 Reply Last reply
      0
      • NashraN Nashra

        @Oli sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

        @Nashra

        da das Script nicht von mir ist und ich nicht der Script-Experte bin,

        @Oli da könne wir uns zusammen tun, ich nämlich auch nicht :grin:
        Aber vllt kann uns da ja @SBorg aus der Patsche helfen.

        O Online
        O Online
        Oli
        wrote on last edited by Oli
        #56

        @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();
        

        Gruß
        Oliver

        NashraN 1 Reply Last reply
        2
        • O Oli

          @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();
          

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

          @Oli Danke :+1:

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

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

          O 1 Reply Last reply
          0
          • NashraN Nashra

            @Oli Danke :+1:

            O Online
            O Online
            Oli
            wrote on last edited by
            #58

            @Nashra

            gerne, war gar nicht so kompliziert, wie ich dachte :-)

            Gruß
            Oliver

            Uli977U 1 Reply Last reply
            0
            • O Oli

              @Nashra

              gerne, war gar nicht so kompliziert, wie ich dachte :-)

              Uli977U Offline
              Uli977U Offline
              Uli977
              wrote on last edited by
              #59

              @Oli gibst du mir nochmal deine VIS mit Trennstrichen und Datum?

              O 1 Reply Last reply
              0
              • Uli977U Uli977

                @Oli gibst du mir nochmal deine VIS mit Trennstrichen und Datum?

                O Online
                O Online
                Oli
                wrote on last edited by
                #60

                @Uli977

                das hat nichts mit der Vis zu tun, nur mit dem Script und das ist 3 Beiträge darüber.

                Gruß
                Oliver

                Uli977U 1 Reply Last reply
                0
                • O Oli

                  @Uli977

                  das hat nichts mit der Vis zu tun, nur mit dem Script und das ist 3 Beiträge darüber.

                  Uli977U Offline
                  Uli977U Offline
                  Uli977
                  wrote on last edited by
                  #61

                  @Oli komisch... wieso habe ich die Trennstriche und das Datum denn nicht drin obwohl ich das Script verwendet habe

                  O 1 Reply Last reply
                  0
                  • Uli977U Uli977

                    @Oli komisch... wieso habe ich die Trennstriche und das Datum denn nicht drin obwohl ich das Script verwendet habe

                    O Online
                    O Online
                    Oli
                    wrote on last edited by
                    #62

                    @Uli977

                    aus welchem Poste hast du denn das Script übernommen?

                    69101d7b-88d6-46b7-b3ec-b10895460982-image.png

                    Gruß
                    Oliver

                    Uli977U 2 Replies Last reply
                    0
                    • O Oli

                      @Uli977

                      aus welchem Poste hast du denn das Script übernommen?

                      69101d7b-88d6-46b7-b3ec-b10895460982-image.png

                      Uli977U Offline
                      Uli977U Offline
                      Uli977
                      wrote on last edited by
                      #63

                      @Oli

                      8ecf302b-3540-4dd8-86e6-650d86ed2bce-image.png

                      1 Reply Last reply
                      0
                      • O Oli

                        @Uli977

                        aus welchem Poste hast du denn das Script übernommen?

                        69101d7b-88d6-46b7-b3ec-b10895460982-image.png

                        Uli977U Offline
                        Uli977U Offline
                        Uli977
                        wrote on last edited by
                        #64

                        @Oli Jetzt gehts

                        c76db957-d53b-4940-9328-88b157ddabda-image.png

                        1 Reply Last reply
                        0
                        • Uli977U Offline
                          Uli977U Offline
                          Uli977
                          wrote on last edited by
                          #65

                          ich brauche doch nur dieses eine Skript dafür oder.

                          Womit werden denn die Datenpunkte erstellt und aktualisiert?

                          O 1 Reply Last reply
                          0
                          • Uli977U Uli977

                            ich brauche doch nur dieses eine Skript dafür oder.

                            Womit werden denn die Datenpunkte erstellt und aktualisiert?

                            O Online
                            O Online
                            Oli
                            wrote on last edited by
                            #66

                            @Uli977

                            mit dem Script.

                            Daten werden alle 10 Minuten aktualisiert, Datenpunkte werden in deinen Objekten im Javascriptordner erstellt

                            69462b40-d521-4559-b712-8009b42f8bf5-image.png

                            Gruß
                            Oliver

                            Uli977U 1 Reply Last reply
                            0
                            • O Oli

                              @Uli977

                              mit dem Script.

                              Daten werden alle 10 Minuten aktualisiert, Datenpunkte werden in deinen Objekten im Javascriptordner erstellt

                              69462b40-d521-4559-b712-8009b42f8bf5-image.png

                              Uli977U Offline
                              Uli977U Offline
                              Uli977
                              wrote on last edited by
                              #67

                              @Oli Alles klar.... hat nur die Zeile im Skript für die Anlage der Datenpunkte nicht gefunden

                              O 1 Reply Last reply
                              0
                              • Uli977U Uli977

                                @Oli Alles klar.... hat nur die Zeile im Skript für die Anlage der Datenpunkte nicht gefunden

                                O Online
                                O Online
                                Oli
                                wrote on last edited by
                                #68

                                @Uli977

                                Zeile 16 bis 23

                                Gruß
                                Oliver

                                1 Reply Last reply
                                0
                                • SBorgS SBorg

                                  Bevor ich mir das "wie baue ich nun ein Adapter daraus..." anschaue, würde mich noch etwas interessieren. Im Moment ist bei den ToDo's eigentlich nur noch das Datenpunktmanagement offen. Mir stellt sich allerdings die Frage, ist da überhaupt Handlungsbedarf? Ändert ihr die Anzahl der Datenpunkte überhaupt (falls ja, warum) ?
                                  Ich habe seit der ersten Version 5 Datensätze gewählt, von denen ich eh nur die ersten vier zur Anzeige nutze.
                                  Im Prinzip sind die Datenpunkte eh schnell gelöscht (Mülleimer beim obersten Datenpunkt) und genauso schnell wieder beim Start des Skripts angelegt, wenn man tatsächlich mal die Anzahl verändern möchte. Hintergrund ist einfach folgender: da es sich um einen scheduled Skript/später ev. auch Adapter handelt, würde die Prüfung auf korrekte Anzahl der Datenpunkte bei jedem Aufruf stattfinden. Kostet Zeit und Ressourcen, wenn dann auch kaum jemand die Anzahl mal ändert also völlig unnötig...

                                  BBTownB Offline
                                  BBTownB Offline
                                  BBTown
                                  wrote on last edited by
                                  #69

                                  @SBorg sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

                                  Ich habe seit der ersten Version 5 Datensätze gewählt,

                                  Ich nutze es bisher so wie von Euch (Deine Vorgabe und Oli`s Darstellung) hier vorgegeben und wäre damit fein. Kann jedoch den Hinweis, ggf. über eine Eingabe die Anzahl festzulegen nachvollzeihen. Ebenso scheinen sich eininge eine Nachricht schicken zu lassen.

                                  ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                  1 Reply Last reply
                                  0
                                  • Uli977U Offline
                                    Uli977U Offline
                                    Uli977
                                    wrote on last edited by
                                    #70

                                    Sag mal habt ihr das auch, dass die Menüs im Editor nicht richtig angezeigt werden?

                                    0334608c-2643-4e92-a7db-88895151307d-image.png

                                    BBTownB 1 Reply Last reply
                                    0
                                    • Uli977U Uli977

                                      Sag mal habt ihr das auch, dass die Menüs im Editor nicht richtig angezeigt werden?

                                      0334608c-2643-4e92-a7db-88895151307d-image.png

                                      BBTownB Offline
                                      BBTownB Offline
                                      BBTown
                                      wrote on last edited by
                                      #71

                                      @Uli977 sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

                                      Sag mal habt ihr das auch, dass die Menüs im Editor nicht richtig angezeigt werden?

                                      und das hat jetzt genau WAS mit der Lebensmittelwarnung zu tun?

                                      ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                      Uli977U 1 Reply Last reply
                                      0
                                      • BBTownB BBTown

                                        @Uli977 sagte in [Javascript] für Warnungen von Lebensmittelwarnung:

                                        Sag mal habt ihr das auch, dass die Menüs im Editor nicht richtig angezeigt werden?

                                        und das hat jetzt genau WAS mit der Lebensmittelwarnung zu tun?

                                        Uli977U Offline
                                        Uli977U Offline
                                        Uli977
                                        wrote on last edited by
                                        #72

                                        @BBTown Ok, verstanden!

                                        1 Reply Last reply
                                        0
                                        • SBorgS Offline
                                          SBorgS Offline
                                          SBorg
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #73

                                          Ok, danke, dann kann ich das DP-Management streichen. Der Adapter soll zumindest im ersten Schritt mal genau die selbe Funktionalität wie das Javascript Stand Heute haben, nur eben die Konfiguration anstelle im Skript über die Web-UI.
                                          Das würde aber bedeuten, dass @Oli Zusatzskript (ich weiß, es ist nicht direkt von ihm ;) ) mit integriert werden sollte, denn vieles wird nun doppelt ausgeführt (z.B. gerade aktuell Datum patchen), was ich ja sowieso schon ausführe. Ferner bleiben drei weitere Nachteile (?):

                                          1. die Filter funktionieren nicht; die Liste enthält also immer alles
                                          2. es werden alle Bundesländer, oder nur eines angezeigt (je nach Auswahl des RSS-Feeds)
                                          3. man kann sich die Liste nicht "selbst zusammen bauen", da einfach einzelne Inhalte nicht verfügbar sind (bspw. Produktart etc. die ich als Datenpunkte aus dem Feed extrahiere)

                                          Den Feature-Requests bin ich natürlich nicht abgeneigt :)

                                          LG SBorg ( SBorg auf GitHub)
                                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                          BBTownB O 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          419

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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