Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Javascript] für Warnungen von Lebensmittelwarnung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Javascript] für Warnungen von Lebensmittelwarnung

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      Oli @Nashra last edited by

      @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.

      1 Reply Last reply Reply Quote 0
      • O
        Oli @Nashra last edited by 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();
        

        Nashra 1 Reply Last reply Reply Quote 2
        • Nashra
          Nashra Most Active Forum Testing @Oli last edited by

          @Oli Danke 👍

          O 1 Reply Last reply Reply Quote 0
          • O
            Oli @Nashra last edited by

            @Nashra

            gerne, war gar nicht so kompliziert, wie ich dachte 🙂

            Uli977 1 Reply Last reply Reply Quote 0
            • Uli977
              Uli977 @Oli last edited by

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

              O 1 Reply Last reply Reply Quote 0
              • O
                Oli @Uli977 last edited by

                @Uli977

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

                Uli977 1 Reply Last reply Reply Quote 0
                • Uli977
                  Uli977 @Oli last edited by

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

                  O 1 Reply Last reply Reply Quote 0
                  • O
                    Oli @Uli977 last edited by

                    @Uli977

                    aus welchem Poste hast du denn das Script übernommen?

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

                    Uli977 2 Replies Last reply Reply Quote 0
                    • Uli977
                      Uli977 @Oli last edited by

                      @Oli

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

                      1 Reply Last reply Reply Quote 0
                      • Uli977
                        Uli977 @Oli last edited by

                        @Oli Jetzt gehts

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

                        1 Reply Last reply Reply Quote 0
                        • Uli977
                          Uli977 last edited by

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

                          Womit werden denn die Datenpunkte erstellt und aktualisiert?

                          O 1 Reply Last reply Reply Quote 0
                          • O
                            Oli @Uli977 last edited by

                            @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

                            Uli977 1 Reply Last reply Reply Quote 0
                            • Uli977
                              Uli977 @Oli last edited by

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

                              O 1 Reply Last reply Reply Quote 0
                              • O
                                Oli @Uli977 last edited by

                                @Uli977

                                Zeile 16 bis 23

                                1 Reply Last reply Reply Quote 0
                                • BBTown
                                  BBTown @SBorg last edited by

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • Uli977
                                    Uli977 last edited by

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

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

                                    BBTown 1 Reply Last reply Reply Quote 0
                                    • BBTown
                                      BBTown @Uli977 last edited by

                                      @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?

                                      Uli977 1 Reply Last reply Reply Quote 0
                                      • Uli977
                                        Uli977 @BBTown last edited by

                                        @BBTown Ok, verstanden!

                                        1 Reply Last reply Reply Quote 0
                                        • SBorg
                                          SBorg Forum Testing Most Active last edited by

                                          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 🙂

                                          BBTown O 2 Replies Last reply Reply Quote 0
                                          • BBTown
                                            BBTown @SBorg last edited by

                                            @SBorg
                                            Könntest Du im Adapter ggf. die Auswahl der Bundesländer in einem DropDown Feld anbieten?
                                            Standard-Vorgabewert (erster Eintrag) "alle" ?!

                                            SBorg 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript lebensmittelwarnung
                                            24
                                            293
                                            33346
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo