NEWS
Hilfe bei RSS-feed benötigt !
-
@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 aufist größer als letztes
und da ist die Meldung immer gekommen. -
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 ?
-
@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.
-
Interessanter Link, die Daten gibt es auch als Json usw....
https://www.ooelfv.at/feuerwehr-intern/edv/alarmierungen-verfuegbare-publikationsformen/
-
@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 ?
-
@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.
-
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
aktualisiertwerden, außer bei einem neuen Ereignis oder wenn das bestehende nicht mehr existiert.
"neuer_Alarm" verbleibt solange "true", bis kein Einsatz mehr vorhanden. Dann wechselt er auf "false".*EDIT* "geändert" werden
*EDIT2* fehlende Klammer ergänzt -
@negalein 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 -
@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...
-
@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
-
@negalein
ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer}});
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer
das wars
-
@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. -
10.8.2021, 14:03:23.504 [info ]: javascript.0 (16368) Stop script script.js.Ansage.Ansage__Feuerwehreinsatz 10.8.2021, 14:03:24.193 [info ]: javascript.0 (16368) Start javascript script.js.Ansage.Ansage__Feuerwehreinsatz 10.8.2021, 14:03:24.200 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: registered 1 subscription and 0 schedules 10.8.2021, 14:03:24.624 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Trigger: 10.8.2021, 14:03:24.625 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:03:24.625 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:03:24.625 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:03:24.626 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: TypeError: Cannot read property 'length' of null 10.8.2021, 14:03:24.627 [error]: javascript.0 (16368) at subsequenceFromStartLast (script.js.Ansage.Ansage__Feuerwehreinsatz:5:22) 10.8.2021, 14:03:24.627 [error]: javascript.0 (16368) at Object.<anonymous> (script.js.Ansage.Ansage__Feuerwehreinsatz:22:140) 10.8.2021, 14:03:42.854 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Trigger: [{"Titel":"VB - VERKEHRSUNFALL AUFRÄUMARBEITEN","Feuerwache":"Vöcklabruck - UNGENACH","Einsatz":"E210801768","Alarmstufe":"1","Feuerwehren":"1","Zeit":"10.08.2021 13:57 Uhr","Bezirk":"FF Ungenach"}] 10.8.2021, 14:03:42.854 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Ansage: 80;Achtung VERKEHRSUNFALL AUFRÄUMARBEITEN, Feuerwehreinsatz in Vöcklabruck - UNGENACH, Alarmstufe 1 10.8.2021, 14:03:42.856 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Trigger: [{"Titel":"UU - BRANDMELDEALARM","Feuerwache":"Urfahr-Umgebung - GRAMASTETTEN","Einsatz":"E210801764","Alarmstufe":"1","Feuerwehren":"1","Zeit":"10.08.2021 13:51 Uhr","Bezirk":"FF Gramastetten"}] 10.8.2021, 14:03:42.856 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Ansage: 80;Achtung BRANDMELDEALARM, Feuerwehreinsatz in Urfahr-Umgebung - GRAMASTETTEN, Alarmstufe 1 10.8.2021, 14:03:42.858 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Trigger: [{"Titel":"BR - TECHNISCHER EINSATZ KLEIN","Feuerwache":"Braunau - BRAUNAU AM INN","Einsatz":"E210801752","Alarmstufe":"1","Feuerwehren":"1","Zeit":"10.08.2021 11:51 Uhr","Bezirk":"FF Ranshofen"}] 10.8.2021, 14:03:42.858 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Ansage: 80;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1 10.8.2021, 14:04:26.111 [info ]: javascript.0 (16368) Stop script script.js.Ansage.Ansage__Feuerwehreinsatz 10.8.2021, 14:04:26.848 [info ]: javascript.0 (16368) Start javascript script.js.Ansage.Ansage__Feuerwehreinsatz 10.8.2021, 14:04:26.880 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: registered 1 subscription and 0 schedules 10.8.2021, 14:04:27.233 [info ]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Trigger: 10.8.2021, 14:04:27.233 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:04:27.233 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:04:27.234 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: Cannot parse ""SyntaxError: Unexpected end of JSON input 10.8.2021, 14:04:27.234 [error]: javascript.0 (16368) script.js.Ansage.Ansage__Feuerwehreinsatz: TypeError: Cannot read property 'length' of null 10.8.2021, 14:04:27.234 [error]: javascript.0 (16368) at subsequenceFromStartLast (script.js.Ansage.Ansage__Feuerwehreinsatz:5:22) 10.8.2021, 14:04:27.234 [error]: javascript.0 (16368) at Object.<anonymous> (script.js.Ansage.Ansage__Feuerwehreinsatz:22:140)
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
@negalein
ich glaube in Zeile 66 fehlt eine geschweifte schließende Klammer}});
Kommt davon wenn man es mit einem Texteditor macht und sich dann ver
klammert, äh zählt...
@Negalein hast du im Blockly von "aktualisiert" auf "geändert" umgestellt?Sieht IMHO nämlich gut aus:
-
@negalein sagte in Hilfe bei RSS-feed benötigt !:
@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.ja, das habe ich auch, wenn es mehr als einen Einsatz Zeitgleich gibt, je nach dem welchen Trigger Du nun aktuell verwendest.
Du hast gesehen das 0_userdata.0 eingestellt war im Script ?Trigger müßte im Blockly nun wieder der DP
neue Meldung
sein (true/false) dann sollte das nicht mehr passieren... -
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
Trigger müßte im Blockly nun wieder der DP neue Meldung sein (true/false) dann sollte das nicht mehr passieren...
Umgestellt, geht , teste weiter
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
Du hast gesehen das 0_userdata.0 eingestellt war im Script ?
Ich vergaß...
...ich stelle alles (und neues) mittlerweile auf den Userspace um -
@sborg sagte in Hilfe bei RSS-feed benötigt !:
hast du im Blockly von "aktualisiert" auf "geändert" umgestellt?
Ja
muss es später mit einem anderen Bezirk testen. Aktuell ist bei uns kein Einsatz.
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
das habe ich auch, wenn es mehr als einen Einsatz Zeitgleich gibt, je nach dem welchen Trigger Du nun aktuell verwendest.
Du hast gesehen das 0_userdata.0 eingestellt war im Script ?es gab da nur 1 Einsatz.
Trigger hab ich den neuen verwendet. -
ich teste gerade zwei verschiedene Sachen. Ich habe mal Schardenberg im Script eingestellt. Da passiert gerade folgendes beim Trigger auf die Ereignisse:
14:14:23.208 info javascript.0 (4461) script.js.99_Test.Feuerwehr-negalein: wurde geändert: 30;Achtung VERKEHRSUNFALL EINGEKLEMMTE PERSON, Feuerwehreinsatz in Urfahr-Umgebung - ST. GOTTHARD IM MÜHLKREIS, Alarmstufe 2 14:14:23.209 info javascript.0 (4461) script.js.99_Test.Feuerwehr-negalein: wurde geändert: 30;Achtung VERKEHRSUNFALL AUFRÄUMARBEITEN, Feuerwehreinsatz in Vöcklabruck - UNGENACH, Alarmstufe 1 14:14:23.210 info javascript.0 (4461) script.js.99_Test.Feuerwehr-negalein: wurde geändert: 30;Achtung BRANDMELDEALARM, Feuerwehreinsatz in Urfahr-Umgebung - GRAMASTETTEN, Alarmstufe 1 14:14:23.210 info javascript.0 (4461) script.js.99_Test.Feuerwehr-negalein: wurde geändert: 30;Achtung TECHNISCHER EINSATZ KLEIN, Feuerwehreinsatz in Braunau - BRAUNAU AM INN, Alarmstufe 1
Der andere DP (neue Meldung) steht von Beginn an auf true, aber da kommt dann nichts, weil der ja true bleibt, also würde man wahrscheinlich nur die erste Ansage mit dem ersten Einsatz (wenn vorher nichts war) mitbekommen. Wenn dann weitere Einsätze dazu kommen und der DP noch true ist, weil die Einsätze noch nicht beendet sind, dann käme keine Ansage....denke ich. (und im DP mit den json/Ereignissen steht dann nur das zuletzt eingelesene, von den aktuell vier Einsätzen) Geht also so auch nicht.
@SBorg
kann man alle aktuell laufenden Einsätze in den DP einlesen ? (im Moment steht da immer nur einer drinn obwohl es aktuell mehrere gibt)