NEWS
FF-Einsätze OÖ auswerten
-
Hallo, wie kann ich den Abstand verändern?
-
@sigi234
Mit css
Aktuell wird nur eine rohe html Tabelle ausgegeben.
Mit Abstand meinst du padding oder margin? -
Habe gerade deinen thread erstmalig gelesen.
Warum stellt ihr diese einsatzsensiblen Daten abrufbar ins Internet? Gibt es keine Intranet-Lösung?
-
@meister-mopper sagte in FF-Einsätze OÖ auswerten:
Warum stellt ihr diese einsatzsensiblen Daten abrufbar ins Internet? Gibt es keine Intranet-Lösung?
Doch, aber nur für FF-Mitglieder.
Diese Daten die ich abrufe, sind dank DSGVO nicht einsatzsensibel. Es ist der Einsatzort nicht ersichtlich.
-
@negalein sagte in FF-Einsätze OÖ auswerten:
Diese Daten die ich abrufe, sind dank DSGVO nicht einsatzsensibel. Es ist der Einsatzort nicht ersichtlich.
Ja, das schon, aber die Einsatzbelastung ist schon relevant.
Wenn jemand stören möchte, kann er es zu geeigneten Zeiten tun, um den größtmöglichen Schaden anzurichten.
Das sollte aus meiner Sicht bedacht werden.
-
@meister-mopper sagte in FF-Einsätze OÖ auswerten:
Das sollte aus meiner Sicht bedacht werden.
gibt bei uns GsD noch normale Menschen.
Wenn jemand stören möchte, kann er es zu geeigneten Zeiten tun, um den größtmöglichen Schaden anzurichten.
dann dürfte auch keine Sirene, usw. losgehn. Ein Einsatz ist normal weiträumig zu hören.
Zumindest bei uns. -
@negalein sagte in FF-Einsätze OÖ auswerten:
dann dürfte auch keine Sirene, usw. losgehn. Ein Einsatz ist normal weiträumig zu hören.
Zumindest bei uns.Ja, das mag sein, aber bei geplanten Anschlägen von außen hilft die Sirene nüscht .
Ich zumindest würde die Thematik mal oben einwerfen.
-
@negalein sagte in FF-Einsätze OÖ auswerten:
Bitte noch Datum, Zeit entfernen & vor einsatz.bezirk_name bitte das Wort Bezirk einfügen
function prepareMessages(einsaetze, kurz, alle) { let messages = []; const dateOptions = { weekday: "long", }; const timeOptions = { hour: "2-digit", minute: "2-digit" }; einsaetze.map(einsatz => { if (!einsaetzeGesendet.includes(einsatz.id) || alle) { if (kurz) { messages.push(['Achtung;Feuerwehreinsatz in ', einsatz.earea, ';', 'Alarmstufe ', einsatz.alarmstufe, ';', einsatz.einsatzsubtyp, ';'].join('')); } else { messages.push(['Achtung;Feuerwehreinsatz in ', einsatz.earea, ';', 'Alarmstufe ', einsatz.alarmstufe, ';', einsatz.einsatzsubtyp, ';', 'Bezirk ', einsatz.bezirk_name, ';Anzahl Feuerwehren ', einsatz.einheiten.length, ';'].join('')); } einsaetzeGesendet.push(einsatz.id); } }) return messages.join(";"); }
-
@sigi234 sagte in FF-Einsätze OÖ auswerten:
EDIT2
Doch nichtwie weiter oben schon mal gesagt merkt sich das skript
die meldungen nur innerhalb eines starts.
nach dem nächsten start ist das wieder vergessen.
man könnte das gedächtnis in einen datenpunkt verlagern. dann überlebt dies auch den neustart eines skripts -
@meister-mopper sagte in FF-Einsätze OÖ auswerten:
Ja, das mag sein, aber bei geplanten Anschlägen von außen hilft die Sirene nüscht .
das würde jetzt hier zu OT werden.
Aber noch 1x OT
Was meinst du mit "bei geplanten Anschlägen von außen hilft die Sirene nüscht"?
Gerne auch per PN weiter. -
Ich kann mich noch erinnern als ein Sturm war da kamen Einsätze (300) im Minuten Takt rein.
Da stürzte das Blockly dann ab. Kann man das irgendwie abfangen? -
@oliverio sagte in FF-Einsätze OÖ auswerten:
man könnte das gedächtnis in einen datenpunkt verlagern. dann überlebt dies auch den neustart eines skripts
Das wäre sicher eine Überlegung wert.
-
@sigi234 sagte in FF-Einsätze OÖ auswerten:
Ich kann mich noch erinnern als ein Sturm war da kamen Einsätze (300) im Minuten Takt rein.
Da stürzte das Blockly dann ab. Kann man das irgendwie abfangen?du fragst ja eigentlich nur alle 30 sekunden oder größer ab.
auch wenn es 1000 gemeldete einsätze gibt, dürfte es kein problem mit absturz oder speicher geben.
wenn, dann irgendeine code-konstellation, die nicht vorgesehen ist. aber wir haben da gar nicht soviel drin. evtl mal, das sich im quelldatenformat was änderteinen fehler findest du dann im iobroker log
-
@negalein sagte in FF-Einsätze OÖ auswerten:
speichern der bereits gemeldeten einsätze in einem datenpunkt
Das wäre sicher eine Überlegung wertziemlich am anfang (zeile 3) folgendes einfügen
let savedEinsaetzeDP = "0_userdata.a";
die folgende zeile, auch am anfang, bitte löschen
let einsaetzeGesendet ....
folgende funktion bitte tauschen
async function prepareMessages(einsaetze, kurz, alle) { let messages = []; const dateOptions = { weekday: "long", }; const timeOptions = { hour: "2-digit", minute: "2-digit" }; let data = await getStateAsync(savedEinsaetzeDP); let einsaetzeGesendet = JSON.parse(data.val || "[]"); einsaetze.map(einsatz => { if (!einsaetzeGesendet.some(el => el.id == einsatz.id) || alle) { //if (!einsaetzeGesendet.includes(einsatz.id) || alle) { if (kurz) { messages.push(['Achtung;Feuerwehreinsatz in ', einsatz.earea, ';', 'Alarmstufe ', einsatz.alarmstufe, ';', einsatz.einsatzsubtyp, ';'].join('')); } else { messages.push(['Achtung;Feuerwehreinsatz in ', einsatz.earea, ';', 'Alarmstufe ', einsatz.alarmstufe, ';', einsatz.einsatzsubtyp, ';', 'Bezirk ', einsatz.bezirk_name, ';Anzahl Feuerwehren ', einsatz.einheiten.length, ';'].join('')); } einsaetzeGesendet.push({ id: einsatz.id, time: new Date() }); } }) await setStateAsync(savedEinsaetzeDP, JSON.stringify(einsaetzeGesendet)); return messages.join(";"); }
da prepareMessage nun eine async funktion ist, muss an jeder stelle wo diese aufgerufen wird nun await hinzugefügt werden. also so wie folgt
vorherlet messages = prepareMessages(einsaetze, false, false);
nachher
let messages = await prepareMessages(einsaetze, false, false);
falls irgendwas nicht funktioniert, bitte dann nochmal deinen kompletten code posten
-
@oliverio sagte in FF-Einsätze OÖ auswerten:
nachher
bei mir 1x
so richtig, denke ich
async function main() { let xml = await getData() let json = await xml2json(xml); let einsaetze = normalizeData(json.webext2.einsaetze.einsatz); let einsaetze_einheiten = filterEinheiten(einsaetze, [410321, 410327]); let einsaetze_bezirk = filterBezirk(einsaetze, 10); let html1 = toHtml(einsaetze_einheiten); let html2 = toHtml(einsaetze_bezirk); let html3 = toHtml(einsaetze); let messages = await prepareMessages(einsaetze_bezirk, false, false); //messages = await prepareMessages(einsaetze, true, false); let nachtruhe=compareTime("01:00", "06:00","between"); if (!nachtruhe || messages) sendAlexa(messages, 60); if (messages) sendTelegram(messages, ""); if (messages) sendEMail(messages, "christian@nega.at", "Neuer Feuerwehreinsatz"); console.log(html1); console.log(html2); console.log(html3); //setState("0_userdata.0.testFolder.a", html3); setState("0_userdata.0.FF-Einsatz.Bezirk", html2);
let savedEinsaetzeDP = "0_userdata.a";
--> String? -
ich habe gerade nochmal aktualisiert, bitte den code nochmal von oben kopieren
let savedEinsaetzeDP = "0_userdata.a"; --> String?
ja
bei mir 1x
so richtig, denke ichja
-
@oliverio sagte in FF-Einsätze OÖ auswerten:
ich habe gerade nochmal aktualisiert, bitte den code nochmal von oben kopieren
Danke, funktioniert.
Der neue DP wird beschrieben.
-
@negalein sagte in FF-Einsätze OÖ auswerten:
@oliverio sagte in FF-Einsätze OÖ auswerten:
ich habe gerade nochmal aktualisiert, bitte den code nochmal von oben kopieren
Danke, funktioniert.
Der neue DP wird beschrieben.
Kannst du den aktuellen Code mal raufladen?
-
@oliverio sagte in FF-Einsätze OÖ auswerten:
Aktuell wird nur eine rohe html Tabelle ausgegeben.
Kann man es auch als JSON-Table ausgeben?
Edit:
So wie bei Lebensmittelwarnung
-
@sigi234 sagte in FF-Einsätze OÖ auswerten:
Kannst du den aktuellen Code mal raufladen?
Ausgabe schaut so aus:
Achtung
Feuerwehreinsatz in xxxxxx
Alarmstufe 0
Verkehrsunfall Aufräumarbeiten
Bezirk xxxxxx
Anzahl Feuerwehren 2