//let WACHE0 = /FF deine FF*/ig; //RegEx let WACHE1 = /.FF NAME DER FF EINTRAGEN/ig; //RegEx let DP = "javascript.0.Feuerwehr"; //Datenpunkt const Zeitplan = "23 */1 * * * *"; //jede Minute bei 23 Sekunden //Datenpunkt 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(); setState(DP+'.neuer_Alarm', false); //DP leeren 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("
")); 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); } } }); } //end polldata