NEWS
Hilfe bei RSS-feed benötigt !
-
-
@dslraser Werds versuchen
Hab jetzt mal eine rudimentäre Lösung in dem ich mit dem Parser alles aus der xml "rausparse" was ich brauche.
Dann hab ich noch einen Schalter der auf wahr schaltet wenn meine Feuerwehrnummer in der xml vorkommt.
Das ist dann der Trigger für das Alexa Script das mir dann die geparsten Werte wie Einsatzkurzstichwort, Einsatztyp, Adresse und Alarmstufe vorlest (während ich mich anziehe :-))
Falls noch wer braucht, gerne bei mir meldenLG
-
@linux150
Ja, bitte zum Testen -
-
Funktioniert es bei dir noch?
https://intranet.ooelfv.at/ ist nicht mehr erreichbar.
Aber irgendwie funktionierts jetzt noch, bzw. anders. Siehe https://ff.ampits.at/?today -
@negalein sagte in Hilfe bei RSS-feed benötigt !:
Funktioniert es bei dir noch?
https://intranet.ooelfv.at/ ist nicht mehr erreichbar.
Aber irgendwie funktionierts jetzt noch, bzw. anders. Siehe https://ff.ampits.at/?todayNein, das System wurde umgestellt.
-
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Nein, das System wurde umgestellt.
gibt es eine neue URL?
-
@negalein sagte in Hilfe bei RSS-feed benötigt !:
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Nein, das System wurde umgestellt.
gibt es eine neue URL?
Ja, aber weiß nicht ob es rss gibt.
Bin noch am Untersuchen.Benutze jetzt das:
https://play.google.com/store/apps/details?id=at.appaya.lfkeinsatzinfo
-
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Ja, aber weiß nicht ob es rss gibt.
hast du einen Link?
Benutze jetzt das:
ich möchte so wenig wie möglich (Handicap) übers Handy machen.
-
@negalein sagte in Hilfe bei RSS-feed benötigt !:
hast du einen Link?
-
@sigi234 sagte in Hilfe bei RSS-feed benötigt !:
Ja, aber weiß nicht ob es rss gibt.
Gefunden!
https://cf-einsaetze.ooelfv.at/webext2/rss/webext2_laufend.xmlJetzt gehts noch um das Script!
-
@dslraser sagte in Hilfe bei RSS-feed benötigt !:
Ich nutze das gar nicht und habe auch das Blockly nicht mehr
Hallo Heiko!
Leider wurde das System umgestellt und die URL hat sich geändert.
Ich weiß nicht, ob es reicht im Blockly die URL zu ändern, oder ob an den Positionen auch was gemacht werden muss.Könntest du dir das mal ansehen?
-
es ist auf jeden fall kein rss/atom mehr
ich würde empfehlen mit der folgenden
bibliothek die daten in ein json objekt umzuwandeln
https://www.npmjs.com/package/fast-xml-parser
und dann entsprechend aufzubereiten.
mit blockly dürfte das ein wenig aufwändig werden.andere alternative, aber da gibt es zu wenig anleitungen im netz:
die daten sind mehr oder weniger xml.
mit einem xslt-prozessor kann man daraus dann direkt html erzeugen
https://www.npmjs.com/package/xslt-processor
aber auch dafür muss man mit javascript was machen -
@oliverio sagte in Hilfe bei RSS-feed benötigt !:
es ist auf jeden fall kein rss/atom mehr
ich versteh da nur Bahnhof
Ist es mit dem neuen RSS also nicht mehr möglich? -
@negalein
da es kein rss ist, nein
die haben das datenformat komplett geändert und entspricht keinem standard mehr (also ausser das es xml ist) (habe unter webext2 version="1.2" nix gefunden) -
@oliverio sagte in Hilfe bei RSS-feed benötigt !:
die haben das datenformat komplett geändert und entspricht keinem standard mehr (also ausser das es xml ist)
ok, das ist schade.
Muss dann wohl darauf verzichten.Danke für die Erklärung.
-
schreib mal dein wunschlayout grob auf.
die felder die zur verfügung stehen, siehst du ja in dem link -
@oliverio sagte in Hilfe bei RSS-feed benötigt !:
schreib mal dein wunschlayout grob auf.
status --> zum starten und beenden der Meldung
startzeit
einheit id --> zum filtern (Mehrfacheingabe)
earea
alarmtext -
so hier kannst mal probieren
- in den javascript einstellungen die folgenden npm module hinzufügen
axios
xslt-processor
das script im javascript adapter hinzufügen
3) in der filter variable die ids der relevanten stationen hinzufügen. mehrere mit leerzeichen getrennt. die ids sind nicht identisch mit der nummer die bei einheit dabeisteht
4) einen datenpunkt vom typ text/string anlegen und bei variable dp im script eintragen.
5) entsprechendes schedule setzen um das script regelmäßig zu starten
6) im vis ein html-widget hinzufügen und den erzeugten datenpunkt eintragen, so das das hetml dann angezeigt wird.das html ist sehr rudimentär, so das erstmal nur die informationen angezeigt werden. das html template steht in der variable xslString. bspw das <xsl:value-of select="status"/> ist ein platzhalter für die daten aus dem xml. drum herum können dann beliebige html anweiseungen angegeben werden, so das das entsprechend formatiert darbestellt werden kann
// jshint esversion: 8 const Xslt = require("xslt-processor").Xslt; const XmlParser = require("xslt-processor").XmlParser; const axios = require ("axios"); // Funktion zum Abruf der daten const getData = async () => { return axios.get("https://cf-einsaetze.ooelfv.at/webext2/rss/webext2_laufend.xml", { }); }; async function main() { // Konfiguration des skripts let dp = "0_userdata.0.test"; let filter="123 456"; // template string für die transformation let xslString = `<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <h2>Feuerwehr</h2> <xsl:template match="/"> <xsl:for-each select="webext2/einsaetze/einsatz**myfilter**"> <div><xsl:value-of select="status"/></div> <div><xsl:value-of select="startzeit"/></div> <div><xsl:value-of select="einheiten/einheit"/></div> <div><xsl:value-of select="earea"/></div> <div><xsl:value-of select="alarmtext"/></div> </xsl:for-each> </xsl:template> </xsl:stylesheet> `; let xmlString; try { // Daten abrufen xmlString = await getData(); } catch (error) { console.log(error); } // Vorbereitung der xml transformation const xslt = new Xslt(); const xmlParser = new XmlParser(); // Berechnung des filters anhand der einheiten id let myfilter=getFilter(filter); // einfügen des filters in das template xslString=xslString.replace("**myfilter**",myfilter); // transformation durchführen const outXmlString = xslt.xsltProcess( xmlParser.xmlParse(xmlString.data), xmlParser.xmlParse(xslString) ); // ergebnis html in datenpunkt schreiben setState(dp,outXmlString); console.log(outXmlString); } // hilfsfunktion um den filter zu berechnen function getFilter(filter) { let f=[]; filter.split(" ").forEach(element => { if (element.trim()!="") f.push(`einheiten/einheit/@id='${element.trim()}'`); }); if (f.length==0) { return ""; } else { return "["+f.join(" or ")+"]"; } } // aufruf des skripts main();
- in den javascript einstellungen die folgenden npm module hinzufügen
-
@oliverio sagte in Hilfe bei RSS-feed benötigt !:
so hier kannst mal probieren
Danke!!!
Werde es gleich probieren.Eine JSON (oder ähnlich) anstatt dem HTML wird nicht so einfach sein?
Oder je einen eigenen DP für status, startzeit, einheit id, earea, alarmtext.Dann könnte ich es mit Blockly an Alexa ausgeben lassen.