NEWS
Hilfe bei RSS-feed benötigt !
-
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Hallo, bei mir kommt immer die Einsatz Ende Meldung sobald ein Einsatz neu ist?
Ja, wann/wie soll die Meldung denn kommen ?
Die Einsatz Ende Meldung kommt sobald Der Datenpunkt auf false geht. Wahrscheinlich geht der Datenpunkt erst auf false, weil die Meldubg gelöscht / geleert wird, dann bei einer neuen Meldung wieder auf true.
Macht denn die Ende Meldung überhaupt Sinn ?
Ist dieser Einsatz dann überhaupt tatsächlich beendet ? -
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
Macht denn die Ende Meldung überhaupt Sinn ?
Ist dieser Einsatz dann überhaupt tatsächlich beendet ?Werde ich raus nehmen. DANKE jetzt läuft es Super !
Das Skript wird ja bei mir alle 3 Minuten abgerufen, dadurch kommt dann jedes Mal die Alarmmeldung. Kann man das ändern?
Ev. geht es mit "Einsatz":"E210801649"Diese Nummer wird nur einmal vergeben pro Einsatz.
-
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Das Skript wird ja bei mir alle 3 Minuten abgerufen, dadurch kommt dann jedes Mal die Alarmmeldung. Kann man das ändern?
Ja, kommt bei mir auch gerade wiederholend! Ich bekomm es alle 23 Sekunden, da ich schnell Infos benötige.
Das hat auch nicht geholfen.
-
@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 ?
-
@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. -
Bau doch mal debug Bausteine unter die Trigger, dann siehst Du doch was passiert.
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
Bau doch mal debug Bausteine unter die Trigger
so?
Oder auch noch an anderen Stellen?
-
@negalein
mach mal so und deaktiviere alles andere in dem Blockly und lasse das andere Script weiter laufen. -
@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
-
@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.
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
jo, hier steht es ja eigentlich auch (Zeile 21 und 22)
https://forum.iobroker.net/post/661353@SBorg, kannst du da was machen?
-
@dslraser 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...