Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei RSS-feed benötigt !

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    250

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

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

Hilfe bei RSS-feed benötigt !

Hilfe bei RSS-feed benötigt !

Scheduled Pinned Locked Moved JavaScript
426 Posts 13 Posters 67.8k Views 13 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.
  • dslraserD dslraser

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

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    wrote on last edited by
    #184

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

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    dslraserD 1 Reply Last reply
    0
    • NegaleinN Negalein

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

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      wrote on last edited by
      #185

      @negalein

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

      NegaleinN 1 Reply Last reply
      0
      • dslraserD dslraser

        @negalein

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

        NegaleinN Offline
        NegaleinN Offline
        Negalein
        Global Moderator
        wrote on last edited by
        #186

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

        ° Node.js: 20.17.0 NPM: 10.8.2
        ° Proxmox, Ubuntu 22.04.3 LTS
        ° Fixer ---> iob fix

        dslraserD 1 Reply Last reply
        0
        • NegaleinN Negalein

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

          dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          wrote on last edited by dslraser
          #187

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

          NegaleinN 1 Reply Last reply
          0
          • dslraserD 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>
            

            NegaleinN Offline
            NegaleinN Offline
            Negalein
            Global Moderator
            wrote on last edited by
            #188

            @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
            

            ° Node.js: 20.17.0 NPM: 10.8.2
            ° Proxmox, Ubuntu 22.04.3 LTS
            ° Fixer ---> iob fix

            dslraserD 1 Reply Last reply
            0
            • NegaleinN Negalein

              @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
              
              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by dslraser
              #189

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

              NegaleinN 2 Replies Last reply
              0
              • dslraserD 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.

                NegaleinN Offline
                NegaleinN Offline
                Negalein
                Global Moderator
                wrote on last edited by
                #190

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

                ° Node.js: 20.17.0 NPM: 10.8.2
                ° Proxmox, Ubuntu 22.04.3 LTS
                ° Fixer ---> iob fix

                dslraserD 1 Reply Last reply
                0
                • dslraserD 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.

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  wrote on last edited by
                  #191

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

                  ° Node.js: 20.17.0 NPM: 10.8.2
                  ° Proxmox, Ubuntu 22.04.3 LTS
                  ° Fixer ---> iob fix

                  1 Reply Last reply
                  0
                  • NegaleinN Negalein

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

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by
                    #192

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

                    NegaleinN sigi234S 2 Replies Last reply
                    0
                    • dslraserD dslraser

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

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      wrote on last edited by
                      #193

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

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      dslraserD 1 Reply Last reply
                      0
                      • dslraserD dslraser

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

                        sigi234S Online
                        sigi234S Online
                        sigi234
                        Forum Testing Most Active
                        wrote on last edited by
                        #194

                        @dslraser
                        @Negalein
                        @SBorg

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

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

                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Immer Daten sichern!

                        1 Reply Last reply
                        0
                        • NegaleinN Negalein

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

                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          wrote on last edited by
                          #195

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

                          NegaleinN 1 Reply Last reply
                          0
                          • dslraserD dslraser

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

                            NegaleinN Offline
                            NegaleinN Offline
                            Negalein
                            Global Moderator
                            wrote on last edited by
                            #196

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

                            ° Node.js: 20.17.0 NPM: 10.8.2
                            ° Proxmox, Ubuntu 22.04.3 LTS
                            ° Fixer ---> iob fix

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

                              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

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

                              NegaleinN 2 Replies Last reply
                              0
                              • NegaleinN Negalein

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

                                dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                wrote on last edited by dslraser
                                #198

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

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

                                @SBorg Ich war gerade auch dabei diesen Beitrag zu schreiben als Du Deine Änderung gepostet hast. Ich hatte Dein Script auch verändert, aber wenn es mehrere Meldungen gab, dann kamen im eingestellten Intervall auch immer abwechselnd die Meldungen.
                                Dann werde ich mal Dein aktuelles Script probieren...
                                Meinen schon geschriebenen Text lasse ich mal unten im Spoiler drinn

                                javascript.0
                                2021-08-10 12:55:12.898	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:55:12.897	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:55:12.895	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:55:12.894	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:54:42.562	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:54:42.561	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:54:42.552	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:54:42.552	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:54:00.219	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:54:00.218	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:54:00.216	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:54:00.215	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:53:33.732	info	script.js.13_Uhr_und_Astro.Astrozeiten: nächte kommende Tagezeit: Nachmittag
                                
                                javascript.0
                                2021-08-10 12:53:33.732	info	script.js.13_Uhr_und_Astro.Astrozeiten: neue Tagezeit: Mittag
                                
                                javascript.0
                                2021-08-10 12:53:30.219	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:53:30.218	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:53:30.216	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:53:30.215	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                
                                javascript.0
                                2021-08-10 12:53:00.220	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                
                                javascript.0
                                2021-08-10 12:53:00.220	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                

                                Ich habe mal das Script und das Blockly verändert. Jetzt wird der Datenpunkt mit der Meldung nicht mehr geleert. Der Datenpunkt mit true/false ist ganz raus.
                                Im Blockly schaue ich jetzt eigentlich nur ob sich der Datenpunkt mit der Meldung geändert hat und lasse dann die Ansage machen. Beim Scriptstart wird der Datenpunkt einmalig geleert.
                                Der Zeitplan steht zum testen auf 30 Sekunden.

                                Probier mal...:

                                let   WACHE0   = /.*/ig;                        //RegEx
                                let   WACHE1   = /Schardenberg*/ig;             //RegEx
                                let   DP       = "javascript.0.Feuerwehr";      //Datenpunkt
                                const Zeitplan = "*/30 * * * * *";              //Intervall
                                
                                
                                //Datenpunkt anlegen
                                createState(DP+'.RSS_Meldung', '', { name: "Feuerwehreinsatzmeldungen", type: "json", role: "state" });
                                
                                //scheduler
                                schedule(Zeitplan, polldata);
                                polldata();  //einmalig direkt beim Start Daten holen
                                setState(DP+'.RSS_Meldung', ''); //DP leeren
                                
                                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();
                                   //setState(DP+'.RSS_Meldung', ''); //DP leeren
                                   
                                   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(WACHE0) != -1 || item.description.search(WACHE1) != -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...");
                                     }     
                                   }
                                 });
                                } //end polldata
                                
                                

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable id="L7A9(g?`LW}R/bMuZJZ+">alarm</variable>
                                   <variable id="LsczX0YIyn!68c?SjK*I">Ansage</variable>
                                 </variables>
                                 <block type="update" id="]Rq*KdtvY3{/U}jfts0r" x="262" y="112">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">javascript.0.Feuerwehr.RSS_Meldung</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="text" id="Xc0!UR;yaa*OC;WI^~aM">
                                       <field name="TEXT"></field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="on" id="4Ag2o!M7(duPG[0Vl2Hd">
                                       <field name="OID">javascript.0.Feuerwehr.RSS_Meldung</field>
                                       <field name="CONDITION">ne</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="variables_set" id="%HtGMbM4;hXhq!W!Jl{p">
                                           <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                           <value name="VALUE">
                                             <block type="on_source" id="jdhj}_X/5kH1zQ5o*8C^">
                                               <field name="ATTR">state.val</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="debug" id="2V~2-(yaB)LH2@eNpWBR" disabled="true">
                                               <field name="Severity">log</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="d%$x30Q;kC;=Vt{B]6|t">
                                                   <field name="TEXT">test</field>
                                                 </shadow>
                                                 <block type="text_join" id="~iS=1zY?23LhChk$.@ER">
                                                   <mutation items="2"></mutation>
                                                   <value name="ADD0">
                                                     <block type="text" id="XbTnG~[ZSi/:1jq~rw^t">
                                                       <field name="TEXT">Trigger: </field>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="on_source" id="tBL#1AF%0UrQql557:kl">
                                                       <field name="ATTR">state.val</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="controls_if" id="^tIyFsUxjFqH^5KM]Cd@">
                                                   <value name="IF0">
                                                     <block type="logic_compare" id="]zMvXTEIU,.V1C4;K,~:">
                                                       <field name="OP">NEQ</field>
                                                       <value name="A">
                                                         <block type="on_source" id="1|*|+,f61)[zG*HC3q|8">
                                                           <field name="ATTR">state.val</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="text" id="!zh?%SplHiDFi-b/Nak_">
                                                           <field name="TEXT"></field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="variables_set" id="CMmMZwNmchG4F@fQN:C}">
                                                       <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                       <value name="VALUE">
                                                         <block type="text_join" id="*h/@)bzlPIooxo1/j:Au">
                                                           <mutation items="8"></mutation>
                                                           <value name="ADD0">
                                                             <block type="text" id="Xu8o?(43(vn;Cg!T-f[1">
                                                               <field name="TEXT">30;Achtung </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD1">
                                                             <block type="text_getSubstring" id="}IpIsHTiUy+8B#?K/B%5">
                                                               <mutation at1="true" at2="false"></mutation>
                                                               <field name="WHERE1">FROM_START</field>
                                                               <field name="WHERE2">LAST</field>
                                                               <value name="STRING">
                                                                 <block type="get_attr" id="v~82#[cNH(ra2KPFbM4W">
                                                                   <value name="PATH">
                                                                     <shadow type="text" id="7;3ubSC@.Vh4B1@vTR%$">
                                                                       <field name="TEXT">0.Titel</field>
                                                                     </shadow>
                                                                   </value>
                                                                   <value name="OBJECT">
                                                                     <block type="variables_get" id="+ui2E?c,Vjd@r+{OJD%%">
                                                                       <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <value name="AT1">
                                                                 <block type="math_number" id="uTA06l]H..Y:0_w;K7O7">
                                                                   <field name="NUM">6</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <value name="ADD2">
                                                             <block type="text" id="-mZ^h1(ueF^~78a{-,4z">
                                                               <field name="TEXT">, </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD3">
                                                             <block type="text" id="0}0|gG|9{6D#6[fzo9qB">
                                                               <field name="TEXT">Feuerwehreinsatz in </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD4">
                                                             <block type="get_attr" id="NH!)Y8=bLfRpPo2:WbjX">
                                                               <value name="PATH">
                                                                 <shadow type="text" id="(Cy7yET/dEvN8A4b|-(w">
                                                                   <field name="TEXT">0.Feuerwache</field>
                                                                 </shadow>
                                                               </value>
                                                               <value name="OBJECT">
                                                                 <block type="variables_get" id="H6r!qQXG2k`,6ad^P8@L">
                                                                   <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <value name="ADD5">
                                                             <block type="text" id="a$[LcG?`YqUEJ88yB|Nk">
                                                               <field name="TEXT">, </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD6">
                                                             <block type="text" id="H^eJylGZdDfB9@!`VW/M">
                                                               <field name="TEXT"> Alarmstufe </field>
                                                             </block>
                                                           </value>
                                                           <value name="ADD7">
                                                             <block type="get_attr" id="FgybMVKzEzhDO=?4Y9qZ">
                                                               <value name="PATH">
                                                                 <shadow type="text" id="_sE$+E3j.T_fm~J)o.x2">
                                                                   <field name="TEXT">0.Alarmstufe</field>
                                                                 </shadow>
                                                               </value>
                                                               <value name="OBJECT">
                                                                 <block type="variables_get" id="|!-j*yWA38543V2I-Yo2">
                                                                   <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="debug" id="alm4P!?kI2P%{?tmA?!Q" disabled="true">
                                                           <field name="Severity">log</field>
                                                           <value name="TEXT">
                                                             <shadow type="text">
                                                               <field name="TEXT">test</field>
                                                             </shadow>
                                                             <block type="text_join" id="q1M=D|,|=n?#hG[j{)jF">
                                                               <mutation items="2"></mutation>
                                                               <value name="ADD0">
                                                                 <block type="text" id="/%EeV3[QI[gYyYnZRHXW">
                                                                   <field name="TEXT">Ansage: </field>
                                                                 </block>
                                                               </value>
                                                               <value name="ADD1">
                                                                 <block type="variables_get" id="AVlBEj-{:5rgRgUfV;_l">
                                                                   <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="control" id="aB@ja!KyrC^SDNh,s[3Y">
                                                               <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                               <field name="OID">alexa2.0.Echo-Devices.G0911B0592770T3W.Commands.speak</field>
                                                               <field name="WITH_DELAY">FALSE</field>
                                                               <value name="VALUE">
                                                                 <block type="variables_get" id="[,fek++O]qRkKOl/UM1.">
                                                                   <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                                 </block>
                                                               </value>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </statement>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                                </xml>
                                



                                Bildschirmfoto 2021-08-10 um 13.14.41.png

                                var alarm, Ansage;
                                
                                function subsequenceFromStartLast(sequence, at1) {
                                 var start = at1;
                                 var end = sequence.length - 1 + 1;
                                 return sequence.slice(start, end);
                                }
                                
                                
                                setState("javascript.0.Feuerwehr.RSS_Meldung"/*Feuerwehreinsatzmeldungen*/, '', true);
                                on({id: "javascript.0.Feuerwehr.RSS_Meldung"/*Feuerwehreinsatzmeldungen*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 alarm = (obj.state ? obj.state.val : "");
                                 if ((obj.state ? obj.state.val : "") != '') {
                                   Ansage = ['30;Achtung ',subsequenceFromStartLast(getAttr(alarm, '0.Titel'), 5),', ','Feuerwehreinsatz in ',getAttr(alarm, '0.Feuerwache'),', ',' Alarmstufe ',getAttr(alarm, '0.Alarmstufe')].join('');
                                   console.log(('Ansage: ' + String(Ansage)));
                                 }
                                });
                                


                                SBorgS 1 Reply Last reply
                                0
                                • dslraserD dslraser

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

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

                                  @SBorg Ich war gerade auch dabei diesen Beitrag zu schreiben als Du Deine Änderung gepostet hast. Ich hatte Dein Script auch verändert, aber wenn es mehrere Meldungen gab, dann kamen im eingestellten Intervall auch immer abwechselnd die Meldungen.
                                  Dann werde ich mal Dein aktuelles Script probieren...
                                  Meinen schon geschriebenen Text lasse ich mal unten im Spoiler drinn

                                  javascript.0
                                  2021-08-10 12:55:12.898	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:55:12.897	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:55:12.895	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:55:12.894	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:54:42.562	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:54:42.561	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:54:42.552	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:54:42.552	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:54:00.219	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:54:00.218	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:54:00.216	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:54:00.215	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:53:33.732	info	script.js.13_Uhr_und_Astro.Astrozeiten: nächte kommende Tagezeit: Nachmittag
                                  
                                  javascript.0
                                  2021-08-10 12:53:33.732	info	script.js.13_Uhr_und_Astro.Astrozeiten: neue Tagezeit: Mittag
                                  
                                  javascript.0
                                  2021-08-10 12:53:30.219	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:53:30.218	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:53:30.216	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:53:30.215	info	script.js.99_Test.Feuerwehr: Einsatzmeldung vorhanden...
                                  
                                  javascript.0
                                  2021-08-10 12:53:00.220	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
                                  
                                  javascript.0
                                  2021-08-10 12:53:00.220	info	script.js.99_Test.Feuerwehr-negalein: Ansage: 30;Achtung WASSERSCHADEN, Feuerwehreinsatz in Schärding - SCHÄRDING, Alarmstufe 1
                                  

                                  Ich habe mal das Script und das Blockly verändert. Jetzt wird der Datenpunkt mit der Meldung nicht mehr geleert. Der Datenpunkt mit true/false ist ganz raus.
                                  Im Blockly schaue ich jetzt eigentlich nur ob sich der Datenpunkt mit der Meldung geändert hat und lasse dann die Ansage machen. Beim Scriptstart wird der Datenpunkt einmalig geleert.
                                  Der Zeitplan steht zum testen auf 30 Sekunden.

                                  Probier mal...:

                                  let   WACHE0   = /.*/ig;                        //RegEx
                                  let   WACHE1   = /Schardenberg*/ig;             //RegEx
                                  let   DP       = "javascript.0.Feuerwehr";      //Datenpunkt
                                  const Zeitplan = "*/30 * * * * *";              //Intervall
                                  
                                  
                                  //Datenpunkt anlegen
                                  createState(DP+'.RSS_Meldung', '', { name: "Feuerwehreinsatzmeldungen", type: "json", role: "state" });
                                  
                                  //scheduler
                                  schedule(Zeitplan, polldata);
                                  polldata();  //einmalig direkt beim Start Daten holen
                                  setState(DP+'.RSS_Meldung', ''); //DP leeren
                                  
                                  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();
                                     //setState(DP+'.RSS_Meldung', ''); //DP leeren
                                     
                                     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(WACHE0) != -1 || item.description.search(WACHE1) != -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...");
                                       }     
                                     }
                                   });
                                  } //end polldata
                                  
                                  

                                  <xml xmlns="https://developers.google.com/blockly/xml">
                                   <variables>
                                     <variable id="L7A9(g?`LW}R/bMuZJZ+">alarm</variable>
                                     <variable id="LsczX0YIyn!68c?SjK*I">Ansage</variable>
                                   </variables>
                                   <block type="update" id="]Rq*KdtvY3{/U}jfts0r" x="262" y="112">
                                     <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                     <field name="OID">javascript.0.Feuerwehr.RSS_Meldung</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="text" id="Xc0!UR;yaa*OC;WI^~aM">
                                         <field name="TEXT"></field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="on" id="4Ag2o!M7(duPG[0Vl2Hd">
                                         <field name="OID">javascript.0.Feuerwehr.RSS_Meldung</field>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <statement name="STATEMENT">
                                           <block type="variables_set" id="%HtGMbM4;hXhq!W!Jl{p">
                                             <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                             <value name="VALUE">
                                               <block type="on_source" id="jdhj}_X/5kH1zQ5o*8C^">
                                                 <field name="ATTR">state.val</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="debug" id="2V~2-(yaB)LH2@eNpWBR" disabled="true">
                                                 <field name="Severity">log</field>
                                                 <value name="TEXT">
                                                   <shadow type="text" id="d%$x30Q;kC;=Vt{B]6|t">
                                                     <field name="TEXT">test</field>
                                                   </shadow>
                                                   <block type="text_join" id="~iS=1zY?23LhChk$.@ER">
                                                     <mutation items="2"></mutation>
                                                     <value name="ADD0">
                                                       <block type="text" id="XbTnG~[ZSi/:1jq~rw^t">
                                                         <field name="TEXT">Trigger: </field>
                                                       </block>
                                                     </value>
                                                     <value name="ADD1">
                                                       <block type="on_source" id="tBL#1AF%0UrQql557:kl">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="controls_if" id="^tIyFsUxjFqH^5KM]Cd@">
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="]zMvXTEIU,.V1C4;K,~:">
                                                         <field name="OP">NEQ</field>
                                                         <value name="A">
                                                           <block type="on_source" id="1|*|+,f61)[zG*HC3q|8">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="text" id="!zh?%SplHiDFi-b/Nak_">
                                                             <field name="TEXT"></field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="variables_set" id="CMmMZwNmchG4F@fQN:C}">
                                                         <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                         <value name="VALUE">
                                                           <block type="text_join" id="*h/@)bzlPIooxo1/j:Au">
                                                             <mutation items="8"></mutation>
                                                             <value name="ADD0">
                                                               <block type="text" id="Xu8o?(43(vn;Cg!T-f[1">
                                                                 <field name="TEXT">30;Achtung </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text_getSubstring" id="}IpIsHTiUy+8B#?K/B%5">
                                                                 <mutation at1="true" at2="false"></mutation>
                                                                 <field name="WHERE1">FROM_START</field>
                                                                 <field name="WHERE2">LAST</field>
                                                                 <value name="STRING">
                                                                   <block type="get_attr" id="v~82#[cNH(ra2KPFbM4W">
                                                                     <value name="PATH">
                                                                       <shadow type="text" id="7;3ubSC@.Vh4B1@vTR%$">
                                                                         <field name="TEXT">0.Titel</field>
                                                                       </shadow>
                                                                     </value>
                                                                     <value name="OBJECT">
                                                                       <block type="variables_get" id="+ui2E?c,Vjd@r+{OJD%%">
                                                                         <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <value name="AT1">
                                                                   <block type="math_number" id="uTA06l]H..Y:0_w;K7O7">
                                                                     <field name="NUM">6</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="text" id="-mZ^h1(ueF^~78a{-,4z">
                                                                 <field name="TEXT">, </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD3">
                                                               <block type="text" id="0}0|gG|9{6D#6[fzo9qB">
                                                                 <field name="TEXT">Feuerwehreinsatz in </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD4">
                                                               <block type="get_attr" id="NH!)Y8=bLfRpPo2:WbjX">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="(Cy7yET/dEvN8A4b|-(w">
                                                                     <field name="TEXT">0.Feuerwache</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="variables_get" id="H6r!qQXG2k`,6ad^P8@L">
                                                                     <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="ADD5">
                                                               <block type="text" id="a$[LcG?`YqUEJ88yB|Nk">
                                                                 <field name="TEXT">, </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD6">
                                                               <block type="text" id="H^eJylGZdDfB9@!`VW/M">
                                                                 <field name="TEXT"> Alarmstufe </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD7">
                                                               <block type="get_attr" id="FgybMVKzEzhDO=?4Y9qZ">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="_sE$+E3j.T_fm~J)o.x2">
                                                                     <field name="TEXT">0.Alarmstufe</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="variables_get" id="|!-j*yWA38543V2I-Yo2">
                                                                     <field name="VAR" id="L7A9(g?`LW}R/bMuZJZ+">alarm</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id="alm4P!?kI2P%{?tmA?!Q" disabled="true">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="text_join" id="q1M=D|,|=n?#hG[j{)jF">
                                                                 <mutation items="2"></mutation>
                                                                 <value name="ADD0">
                                                                   <block type="text" id="/%EeV3[QI[gYyYnZRHXW">
                                                                     <field name="TEXT">Ansage: </field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="ADD1">
                                                                   <block type="variables_get" id="AVlBEj-{:5rgRgUfV;_l">
                                                                     <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="control" id="aB@ja!KyrC^SDNh,s[3Y">
                                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                                 <field name="OID">alexa2.0.Echo-Devices.G0911B0592770T3W.Commands.speak</field>
                                                                 <field name="WITH_DELAY">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="variables_get" id="[,fek++O]qRkKOl/UM1.">
                                                                     <field name="VAR" id="LsczX0YIyn!68c?SjK*I">Ansage</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                  </xml>
                                  



                                  Bildschirmfoto 2021-08-10 um 13.14.41.png

                                  var alarm, Ansage;
                                  
                                  function subsequenceFromStartLast(sequence, at1) {
                                   var start = at1;
                                   var end = sequence.length - 1 + 1;
                                   return sequence.slice(start, end);
                                  }
                                  
                                  
                                  setState("javascript.0.Feuerwehr.RSS_Meldung"/*Feuerwehreinsatzmeldungen*/, '', true);
                                  on({id: "javascript.0.Feuerwehr.RSS_Meldung"/*Feuerwehreinsatzmeldungen*/, change: "ne"}, async function (obj) {
                                   var value = obj.state.val;
                                   var oldValue = obj.oldState.val;
                                   alarm = (obj.state ? obj.state.val : "");
                                   if ((obj.state ? obj.state.val : "") != '') {
                                     Ansage = ['30;Achtung ',subsequenceFromStartLast(getAttr(alarm, '0.Titel'), 5),', ','Feuerwehreinsatz in ',getAttr(alarm, '0.Feuerwache'),', ',' Alarmstufe ',getAttr(alarm, '0.Alarmstufe')].join('');
                                     console.log(('Ansage: ' + String(Ansage)));
                                   }
                                  });
                                  


                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  wrote on last edited by SBorg
                                  #199

                                  @dslraser 🙂
                                  Die Meldung wird zwar noch immer jedes mal geschrieben, da aber das auch jedes mal erfolgte löschen weg fällt, fällt auch das "aktualisieren" aus, außer es passiert wirklich was neues.

                                  * EDIT * natürlich "ändern", aktualisiert wird ja...

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

                                  1 Reply Last reply
                                  1
                                  • SBorgS 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

                                    NegaleinN Offline
                                    NegaleinN Offline
                                    Negalein
                                    Global Moderator
                                    wrote on last edited by
                                    #200

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

                                    Ungetestet aus dem Bauch heraus:

                                    Danke

                                    Er meckert bei mir was an.

                                    javascript.0 (6878) script.js.Feuerwehr.Einsaetze compile failed: at script.js.Feuerwehr.Einsaetze:66
                                    

                                    ° Node.js: 20.17.0 NPM: 10.8.2
                                    ° Proxmox, Ubuntu 22.04.3 LTS
                                    ° Fixer ---> iob fix

                                    dslraserD 1 Reply Last reply
                                    0
                                    • NegaleinN Negalein

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

                                      Ungetestet aus dem Bauch heraus:

                                      Danke

                                      Er meckert bei mir was an.

                                      javascript.0 (6878) script.js.Feuerwehr.Einsaetze compile failed: at script.js.Feuerwehr.Einsaetze:66
                                      
                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #201

                                      @negalein
                                      ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer

                                       }});
                                      
                                      NegaleinN sigi234S SBorgS 3 Replies Last reply
                                      0
                                      • dslraserD dslraser

                                        @negalein
                                        ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer

                                         }});
                                        
                                        NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        wrote on last edited by
                                        #202

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

                                        ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer

                                        das wars 🙂

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        1 Reply Last reply
                                        0
                                        • SBorgS 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

                                          NegaleinN Offline
                                          NegaleinN Offline
                                          Negalein
                                          Global Moderator
                                          wrote on last edited by Negalein
                                          #203

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

                                          Ungetestet aus dem Bauch heraus:

                                          kommt leider noch wiederholend

                                          Beobachtung:
                                          Script Start ---> DP wird befüllt ---> Alexa plappert
                                          00:21 ---> DP wird geleert ---> Alexa plappert
                                          00:42 ---> DP wird befüllt ---> Alexa plappert
                                          01:03 ---> DP wird geleert ---> Alexa plappert
                                          usw. bis der Einsatz beendet ist.

                                          ° Node.js: 20.17.0 NPM: 10.8.2
                                          ° Proxmox, Ubuntu 22.04.3 LTS
                                          ° Fixer ---> iob fix

                                          dslraserD 1 Reply 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

                                          103

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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