Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Hilfe bei RSS-feed benötigt !

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Hilfe bei RSS-feed benötigt !

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active last edited by

      Das hieß auch Eingangs nicht "Wache" sondern "Filter", da wäre es wohl deutlicher geworden 😉

      btw:

      const Zeitplan = "*/10 * * * *";              //jede Minute bei 23 Sekunden
      

      Mit diesem Cron wird nur alle 10 Minuten abgefragt, also xx:10 Uhr, xx:20 Uhr ... xx:50 Uhr

      const Zeitplan = "*/10 * * * *";              //Abfrage alle 10 Minuten
      
      1 Reply Last reply Reply Quote 0
      • sigi234
        sigi234 Forum Testing Most Active @dslraser last edited by

        @dslraser

        Hallo, bei mir kommt immer die Einsatz Ende Meldung sobald ein Einsatz neu ist?

        Screenshot (4131)_LI.jpg

        dslraser 1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active @sigi234 last edited by

          @sigi234 sagte in Hilfe bei RSS-feed benötigt !:

          @dslraser

          Hallo, bei mir kommt immer die Einsatz Ende Meldung sobald ein Einsatz neu ist?

          Screenshot (4131)_LI.jpg

          Ja, wann/wie soll die Meldung denn kommen ?
          Die Einsatz Ende Meldung kommt sobald Der Datenpunkt auf false geht. Wahrscheinlich geht der Datenpunkt erst auf false, weil die Meldubg gelöscht / geleert wird, dann bei einer neuen Meldung wieder auf true.
          Macht denn die Ende Meldung überhaupt Sinn ?
          Ist dieser Einsatz dann überhaupt tatsächlich beendet ?

          sigi234 1 Reply Last reply Reply Quote 0
          • sigi234
            sigi234 Forum Testing Most Active @dslraser last edited by sigi234

            @dslraser sagte in Hilfe bei RSS-feed benötigt !:

            Macht denn die Ende Meldung überhaupt Sinn ?
            Ist dieser Einsatz dann überhaupt tatsächlich beendet ?

            Werde ich raus nehmen. DANKE jetzt läuft es Super ! 👍

            Screenshot (4135)_LI.jpg

            Das Skript wird ja bei mir alle 3 Minuten abgerufen, dadurch kommt dann jedes Mal die Alarmmeldung. Kann man das ändern?
            Ev. geht es mit "Einsatz":"E210801649"

            Diese Nummer wird nur einmal vergeben pro Einsatz.

            Negalein 1 Reply Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator @sigi234 last edited by

              @sigi234 sagte in Hilfe bei RSS-feed benötigt !:

              Das Skript wird ja bei mir alle 3 Minuten abgerufen, dadurch kommt dann jedes Mal die Alarmmeldung. Kann man das ändern?

              Ja, kommt bei mir auch gerade wiederholend! Ich bekomm es alle 23 Sekunden, da ich schnell Infos benötige.

              Das hat auch nicht geholfen.
              javascript - ioBroker.png

              dslraser 1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @Negalein last edited by

                @negalein sagte in Hilfe bei RSS-feed benötigt !:

                Ja, kommt bei mir auch gerade wiederholend! Ich bekomm es alle 23 Sekunden, da ich schnell Infos benötige.
                Das hat auch nicht geholfen.

                was kommt denn ? Neue Meldungen, oder wird immer die gleiche Meldung wiederholt ?

                Negalein 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @dslraser last edited by

                  @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                  Neue Meldungen, oder wird immer die gleiche Meldung wiederholt ?

                  immer die gleiche Meldung.
                  Schätze liegt am Script, da es zB alle 23 Sekunden den RSS abfragt und bei einer Meldung den DP wieder neu beschreibt.

                  dslraser 1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @Negalein last edited by

                    @negalein

                    Bau doch mal debug Bausteine unter die Trigger, dann siehst Du doch was passiert.

                    Negalein 1 Reply Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @dslraser last edited by

                      @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                      Bau doch mal debug Bausteine unter die Trigger

                      so?
                      javascript - ioBroker (1).png

                      Oder auch noch an anderen Stellen?

                      dslraser 1 Reply Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active @Negalein last edited by dslraser

                        @negalein
                        mach mal so und deaktiviere alles andere in dem Blockly und lasse das andere Script weiter laufen.

                        Bildschirmfoto 2021-08-10 um 10.01.02.png

                        <block xmlns="https://developers.google.com/blockly/xml" type="on" id="`/r^SRxSe(O3zzo7:;5l" x="262.96728515625" y="-62.891204833984375">
                         <field name="OID">javascript.0.Feuerwehr.neuer_Alarm</field>
                         <field name="CONDITION">ne</field>
                         <field name="ACK_CONDITION"></field>
                         <statement name="STATEMENT">
                           <block type="debug" id="vJB4(4P@n;?BM*72vvsb">
                             <field name="Severity">log</field>
                             <value name="TEXT">
                               <shadow type="text" id="4Xo~snX3TjyaeVa-7FLd">
                                 <field name="TEXT">test</field>
                               </shadow>
                               <block type="on_source" id="sAyEE-%d97)On++Y|8$s">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                        </block>
                        

                        Negalein 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @dslraser last edited by

                          @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                          mach mal so und deaktiviere alles andere in dem Blockly und lasse das andere Script weiter laufen.

                          javascript.0 2021-08-10 10:07:46.173	info	script.js.Feuerwehr.Alarm-Alexa: true
                          javascript.0 2021-08-10 10:07:46.003	info	script.js.Feuerwehr.Alarm-Alexa: false
                          javascript.0 2021-08-10 10:07:23.431	info	script.js.Feuerwehr.Alarm-Alexa: true
                          javascript.0 2021-08-10 10:07:23.005	info	script.js.Feuerwehr.Alarm-Alexa: false
                          
                          dslraser 1 Reply Last reply Reply Quote 0
                          • dslraser
                            dslraser Forum Testing Most Active @Negalein last edited by dslraser

                            @negalein
                            jo, hier steht es ja eigentlich auch (Zeile 21 und 22)

                            https://forum.iobroker.net/post/661353

                                setState(DP+'.neuer_Alarm', false);  //DP leeren
                                setState(DP+'.RSS_Meldung', ''); //DP leeren
                            

                            Das wird dann immer neu geschrieben. (bei Dir dann alle 23 Sekunden, wie eingestellt) Dann kommt auch immer die Ansage. Keine Ahnung wie man das anders machen kann...JS kann ich nur wenig.

                            Negalein 2 Replies Last reply Reply Quote 0
                            • Negalein
                              Negalein Global Moderator @dslraser last edited by

                              @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                              jo, hier steht es ja eigentlich auch (Zeile 21 und 22)
                              https://forum.iobroker.net/post/661353

                              @SBorg, kannst du da was machen?

                              dslraser 1 Reply Last reply Reply Quote 0
                              • Negalein
                                Negalein Global Moderator @dslraser last edited by

                                @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                                Das wird dann immer neu geschrieben.

                                bei ist größer als letztes kommt nur true.

                                10:15:23.172	info	javascript.0 (6878) script.js.Feuerwehr.Alarm-Alexa: true
                                

                                Leider ist gerade der Einsatz vorbei. Kann nicht sagen, wie es noch bei einem laufenden mit ist größer als letztes ist.
                                Ach, doch. Hatte es ja vorher auf ist größer als letztes und da ist die Meldung immer gekommen.

                                1 Reply Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @Negalein last edited by

                                  @negalein

                                  eigentlich müssten/sollten die DP dann nicht in dem Zeitpan überschrieben werden, sondern nur wenn sich etwas zur vorherigen Meldung ändert, dann müßte es ja quasi tatsächlich eine neue Meldung sein, oder ?

                                  Negalein sigi234 2 Replies Last reply Reply Quote 0
                                  • Negalein
                                    Negalein Global Moderator @dslraser last edited by

                                    @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                                    dann müßte es ja quasi tatsächlich eine neue Meldung sein, oder ?

                                    Nein, war immer die gleiche Meldung.

                                    dslraser 1 Reply Last reply Reply Quote 0
                                    • sigi234
                                      sigi234 Forum Testing Most Active @dslraser last edited by

                                      @dslraser
                                      @Negalein
                                      @SBorg

                                      Interessanter Link, die Daten gibt es auch als Json usw....

                                      https://www.ooelfv.at/feuerwehr-intern/edv/alarmierungen-verfuegbare-publikationsformen/

                                      1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @Negalein last edited by

                                        @negalein sagte in Hilfe bei RSS-feed benötigt !:

                                        @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                                        dann müßte es ja quasi tatsächlich eine neue Meldung sein, oder ?

                                        Nein, war immer die gleiche Meldung.

                                        Du hast mich falsch verstanden....
                                        Wenn das Script es so machen würde, dann....

                                        eigentlich müssten/sollten die DP dann nicht in dem Zeitpan überschrieben werden, sondern nur wenn sich etwas zur vorherigen Meldung ändert, dann müßte es ja quasi tatsächlich eine neue Meldung sein, oder ?

                                        Negalein 1 Reply Last reply Reply Quote 0
                                        • Negalein
                                          Negalein Global Moderator @dslraser last edited by

                                          @dslraser sagte in Hilfe bei RSS-feed benötigt !:

                                          Du hast mich falsch verstanden....

                                          Ah ok, jetzt verstanden. 🙂

                                          Ja, für das Blockly ist es quasi immer eine neue Meldung, da der DP durch das Script immer neu beschrieben wird.

                                          Wäre cool, wenn @SBorg hier noch was ändern könnte. Falls es möglich ist.

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

                                            Ungetestet aus dem Bauch heraus:

                                            // V0.1.0 10.08.2021 SBorg
                                            let Filter0 = /.*/ig;                        //RegEx (hier alle Meldungen
                                            let Filter1 = /DEINE WACHE*/ig;              //RegEx (zB. Brandwache, Bezirk...)
                                            let DP = "0_userdata.0.Feuerwehr";           //Datenpunkt
                                            
                                            const Zeitplan = "23 * * * * *";             //jede Minute bei 23 Sekunden (individuell abändern; es sollte nicht jeder minütlich bei genau 23 Sekunden abfragen!)
                                            
                                            
                                            //Datenpunkte anlegen
                                            createState(DP+'.RSS_Meldung', '', { name: "Feuerwehreinsatzmeldungen", type: "json", role: "state" });
                                            createState(DP+'.neuer_Alarm', '', { name: "neue Meldung",              type: "boolean", role: "state" });
                                            
                                            
                                            //scheduler
                                            schedule(Zeitplan, polldata);
                                            
                                            polldata();  //einmalig direkt beim Start Daten holen
                                            
                                             
                                            function polldata() {
                                                var FeedParser = require('feedparser');
                                                var request = require('request'); // for fetching the feed
                                                var req = request('http://intranet.ooelfv.at/webext2/rss/rss_laufend.xml');
                                            
                                                var feedparser = new FeedParser();
                                            
                                                req.on('error', function (error) {
                                                 // handle any request errors
                                                });
                                            
                                             
                                                req.on('response', function (res) {
                                                  var stream = this; // `this` is `req`, which is a stream
                                                  if (res.statusCode !== 200) { this.emit('error', new Error('Bad status code')); }
                                                  else { stream.pipe(feedparser); }
                                                });
                                            
                                             
                                                feedparser.on('error', function (error) {
                                                 // always handle errors
                                                });
                                            
                                                feedparser.on('readable', function () {
                                                 // This is where the action is!
                                                var stream = this;    // `this` is `feedparser`, which is a stream
                                                var meta = this.meta; // **NOTE** the "meta" is always available in the context of the feedparser instance
                                                var item;
                                            
                                                while (item = stream.read()) {
                                                  if (item.description.search(Filter0) != -1 || item.description.search(Filter1) != -1) { 
                                                        let tmp = (item.description.split("<br>")); 
                                                        let tmp1= (tmp[1].split(", "));
                                                        let tmp2= (tmp[2].split("  "));
                                                        tmp1[1] = tmp1[1].replace(/[a-z,A-Z,:, ]/ig, "");
                                                        tmp2[0] = tmp2[0].replace(/[a-z,A-Z,:, ]/ig, "");
                                                        tmp2[1] = tmp2[1].replace("- ", "Uhr");
                                                        setState(DP+'.RSS_Meldung', JSON.stringify([{ 'Titel': item.title, 'Feuerwache': tmp[0], 'Einsatz': tmp1[0], 'Alarmstufe': tmp1[1], 'Feuerwehren': tmp2[0], 'Zeit': tmp2[1], 'Bezirk': tmp[3] }]));
                                                        console.log("Einsatzmeldung vorhanden...");
                                                        setState(DP+'.neuer_Alarm', true);
                                                  } else {
                                                     if (getState(DP+'.RSS_Meldung').val) {
                                                      setState(DP+'.neuer_Alarm', false);  //DP leeren
                                                      setState(DP+'.RSS_Meldung', ''); //DP leeren     
                                                     }
                                                  }
                                                }
                                              });
                                            
                                            } //end polldata
                                            

                                            "RSS_ Meldung" sollte nicht mehr aktualisiert werden, außer bei einem neuen Ereignis oder wenn das bestehende nicht mehr existiert.
                                            "neuer_Alarm" verbleibt solange "true", bis kein Einsatz mehr vorhanden. Dann wechselt er auf "false".

                                            *EDIT* "geändert" werden 😉
                                            *EDIT2* fehlende Klammer ergänzt

                                            Negalein 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            458
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            13
                                            426
                                            46993
                                            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