Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. FF-Einsätze OÖ auswerten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    FF-Einsätze OÖ auswerten

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @Negalein last edited by

      @negalein sagte in FF-Einsätze OÖ auswerten:

      wie müsste es denn formatiert werden, das es gut vorgelesen wird?

      ich forsche mal

      https://forum.iobroker.net/topic/74001/alexa-datum-sprachausgabe-speak?_=1726003267765

      1 Reply Last reply Reply Quote 1
      • OliverIO
        OliverIO @Negalein last edited by

        @negalein sagte in FF-Einsätze OÖ auswerten:

        das datum komplett ist wahrscheinlich langweilig

        wie meinst du das?

        die einsätze sind ja eher aktuell und nicht von letzter woche.
        daher ist das komplette datum nicht notwendig.
        wahrscheinlich reicht der Wochentag also

        Montag, 10:45 Uhr oder
        Dienstag, 13:32 Uhr

        hier mal als option noch mit modifizierter zeitausgabe

        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, ';', `${new Date(einsatz.startzeit).toLocaleDateString("de", dateOptions)}, ${new Date(einsatz.startzeit).toLocaleTimeString("de", timeOptions)} Uhr`, ';', einsatz.bezirk_name, ';Anzahl Feuerwehren ', einsatz.einheiten.length, ';'].join(''));
                    }
                    einsaetzeGesendet.push(einsatz.id);
                }
            })
            return messages.join(";");
        }
        
        Negalein sigi234 4 Replies Last reply Reply Quote 0
        • Negalein
          Negalein Global Moderator @OliverIO last edited by

          @oliverio sagte in FF-Einsätze OÖ auswerten:

          hier mal als option noch mit modifizierter zeitausgabe

          Danke, test ich morgen

          1 Reply Last reply Reply Quote 0
          • Negalein
            Negalein Global Moderator @OliverIO last edited by Negalein

            @oliverio

            Gutn Morgen

            gerade ist eine Meldung gekommen 🙂

            Achtung
            Feuerwehreinsatz in Taufkirchen an der Pram
            Alarmstufe 0
            Einsatz od. Einsatzübung
            Mittwoch, 07:50 Uhr
            Schärding
            Anzahl Feuerwehren 1


            Bitte noch Datum, Zeit entfernen & vor einsatz.bezirk_name bitte das Wort Bezirk einfügen.

            Achtung
            Feuerwehreinsatz in Taufkirchen an der Pram
            Bezirk Schärding
            Alarmstufe 0
            Einsatz od. Einsatzübung
            Anzahl Feuerwehren 1

            OliverIO 1 Reply Last reply Reply Quote 0
            • sigi234
              sigi234 Forum Testing Most Active @OliverIO last edited by sigi234

              @oliverio

              Hallo,

              gerade ein Einsatz, wo kann ich einstellen das Ansage Alexa und die E-Mail nur 1 mal kommt?

              Edit:

              Anscheinend da:

              let messages = prepareMessages(einsaetze_bezirk, true, false);
              

              Das letzte false war es, hatte da true

              EDIT2

              Doch nicht

              OliverIO 1 Reply Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @OliverIO last edited by

                @oliverio

                Hallo, wie kann ich den Abstand verändern?

                Screenshot (957).png

                OliverIO 1 Reply Last reply Reply Quote 0
                • OliverIO
                  OliverIO @sigi234 last edited by OliverIO

                  @sigi234
                  Mit css
                  Aktuell wird nur eine rohe html Tabelle ausgegeben.
                  Mit Abstand meinst du padding oder margin?

                  sigi234 1 Reply Last reply Reply Quote 0
                  • Meister Mopper
                    Meister Mopper @Negalein last edited by

                    @negalein

                    Habe gerade deinen thread erstmalig gelesen.

                    Warum stellt ihr diese einsatzsensiblen Daten abrufbar ins Internet? Gibt es keine Intranet-Lösung?

                    Negalein 1 Reply Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @Meister Mopper last edited by

                      @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.

                      Meister Mopper 1 Reply Last reply Reply Quote 0
                      • Meister Mopper
                        Meister Mopper @Negalein last edited by

                        @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.

                        Negalein 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @Meister Mopper last edited by

                          @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. 😉

                          Meister Mopper 1 Reply Last reply Reply Quote 0
                          • Meister Mopper
                            Meister Mopper @Negalein last edited by

                            @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 1 Reply Last reply Reply Quote 0
                            • OliverIO
                              OliverIO @Negalein last edited by

                              @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(";");
                              }
                              
                              1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @sigi234 last edited by

                                @sigi234 sagte in FF-Einsätze OÖ auswerten:

                                EDIT2
                                Doch nicht

                                wie 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

                                sigi234 Negalein 2 Replies Last reply Reply Quote 0
                                • Negalein
                                  Negalein Global Moderator @Meister Mopper last edited by

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • sigi234
                                    sigi234 Forum Testing Most Active @OliverIO last edited by

                                    @oliverio

                                    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 1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @OliverIO last edited by

                                      @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. 🙂

                                      OliverIO 1 Reply Last reply Reply Quote 1
                                      • OliverIO
                                        OliverIO @sigi234 last edited by

                                        @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 ändert

                                        einen fehler findest du dann im iobroker log

                                        1 Reply Last reply Reply Quote 1
                                        • OliverIO
                                          OliverIO @Negalein last edited by OliverIO

                                          @negalein sagte in FF-Einsätze OÖ auswerten:

                                          speichern der bereits gemeldeten einsätze in einem datenpunkt
                                          Das wäre sicher eine Überlegung wert

                                          ziemlich 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
                                          vorher

                                          let messages = prepareMessages(einsaetze, false, false);
                                          

                                          nachher

                                          let messages = await prepareMessages(einsaetze, false, false);
                                          

                                          falls irgendwas nicht funktioniert, bitte dann nochmal deinen kompletten code posten

                                          Negalein 1 Reply Last reply Reply Quote 0
                                          • Negalein
                                            Negalein Global Moderator @OliverIO last edited by

                                            @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?

                                            OliverIO 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            896
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            115
                                            6520
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo