Beiträge von feuerloescher
-
-
ich habe das Skript auf "httpGet" angepasst, da "request" deprecated ist, sonst habe ich keine Veränderungen vorgenommen.
Code
Alles anzeigen// Script zum Abrufen von Einsatzdaten aus der Öffentlichen Connect-Schnittstelle // von Feuersoftware. Infos dazu im Community-Forum. // API-Endpunkt-URL und Bearer-Token const apiUrl = 'https://connectapi.feuersoftware.com/interfaces/public/operation'; const bearerToken = 'DEIN-TOKEN-FUER-DIE-CONNECT-SCHNITTSTELLE' // Objektpfad für die Speicherung der Daten, test ist das Unterverzeichnis und kann angepasst werden const objectPath = 'feuersoftware.test'; // Überwachtes Objekt für die Auslösung des Skripts const triggerObject = 'iot.0.services.custom_id-test'; // Liste der zu leerenden Objekte vor dem Abruf neuer Daten const objectsToEmpty = [ `${objectPath}.Facts`, `${objectPath}.HouseNumber`, `${objectPath}.Keyword`, `${objectPath}.Address`, `${objectPath}.Ric`, `${objectPath}.Properties.Objekt:`, `${objectPath}.Properties.weitereFelder1`, `${objectPath}.Properties.weitereFelder2`, `${objectPath}.Properties.usw`, // Füge weitere Objekte hinzu, die geleert werden sollen ]; // Platzhalterwert, durch den die Werte der Objekte ersetzt werden sollen const placeholderValue = ''; // Funktion zum Ersetzen der Werte von bestimmten Objekten async function replaceValues() { try { // Werte der spezifizierten Objekte ersetzen for (const objId of objectsToEmpty) { await setStateAsync(objId, { val: placeholderValue, ack: true }); } console.log(`Die Werte der spezifizierten Objekte wurden durch "${placeholderValue}" ersetzt.`); } catch (error) { console.error(`Fehler beim Ersetzen der Werte: ${error}`); } } // Funktion zum Abrufen von Daten von der API und Verarbeiten der Daten function fetchData() { // Holen des Wertes des überwachten Objekts const customIdTestValue = getState(triggerObject).val; httpGet(apiUrl, {bearerAuth: bearerToken}, async (err, response) =>{ if (!err && response.statusCode === 200) { try { const data = JSON.parse(response.data); // Durchlaufe jedes Element in den Daten data.forEach((item) => { // Vergleiche die ID mit dem Wert in custom_id-test if (item.Id == customIdTestValue) { // Erstelle den Objektpfad const objectFullPath = `${objectPath}`; // Erstelle die Objekte unter dem Pfad createState(`${objectFullPath}.Start`, item.Start, true); createState(`${objectFullPath}.CreatedAt`, item.CreatedAt, true); createState(`${objectFullPath}.End`, item.End, true); createState(`${objectFullPath}.Keyword`, item.Keyword, true); createState(`${objectFullPath}.Category`, item.Category, true); createState(`${objectFullPath}.Facts`, item.Facts, true); createState(`${objectFullPath}.Ric`, item.Ric, true); // Adresse const addressData = item.Address || {}; createState(`${objectFullPath}.Address`, addressData.Address, true); createState(`${objectFullPath}.Street`, addressData.Street, true); createState(`${objectFullPath}.HouseNumber`, addressData.HouseNumber, true); createState(`${objectFullPath}.ZipCode`, addressData.ZipCode, true); createState(`${objectFullPath}.City`, addressData.City, true); createState(`${objectFullPath}.District`, addressData.District, true); createState(`${objectFullPath}.CityWithDistrict`, addressData.CityWithDistrict, true); createState(`${objectFullPath}.CityWithDistrictAndZipCode`, addressData.CityWithDistrictAndZipCode, true); createState(`${objectFullPath}.StreetWithHouseNumber`, addressData.StreetWithHouseNumber, true); createState(`${objectFullPath}.Lng`, addressData.Lng, true); createState(`${objectFullPath}.Lat`, addressData.Lat, true); // Sonstige Daten createState(`${objectFullPath}.Number`, item.Number, true); createState(`${objectFullPath}.Source`, item.Source, true); // Erstelle die Objekte für Properties const properties = item.Properties || []; properties.forEach((property) => { createState(`${objectFullPath}.Properties.${property.Key}`, property.Value, true); }); // Erstelle die Objekte für AdditionalInformation const additionalInformation = item.AdditionalInformation || []; additionalInformation.forEach((info, infoIndex) => { createState(`${objectFullPath}.AdditionalInformation.${infoIndex}`, info, true); }); // Info Log log(`Neuen Einsatz unter ${objectFullPath} angelegt.`); } }); } catch (err) { log(`Fehler beim Parsen der API-Antwort: ${err}`); } } else { log(`Fehler bei der API-Anfrage. Statuscode: ${response.statusCode}`); } }); } // Überwacht das Auslöseobjekt auf Änderungen und führt das Skript aus on({ id: triggerObject, change: 'any' }, () => { // Vor dem Abrufen neuer Daten, leere die alten Daten replaceValues(); // Rufe die neuen Daten ab fetchData(); });
-
Hallo,
ich habe bei uns mehrere Homematic IP Rauchwarnmelder (Gerätehalle, Schulungsraum, Fahrzeuge innen und auch im Kofferaufbau) welche über das Raspberrymatic (läuft auf dem zentralen Proxmoxserver als eigene Instanz) angebunden sind. Da bei uns ioBroker als zentrales "Hirn" im Gerätehaus läuft werden die Rauchmelder dort ausgewertet.
Wenn 1 Rauchmelder scharf auslöst wird per öffentlicher API ein Alarm generiert welches die Führungsebene sowie die Gerätewarte informiert. Kommt ein weiterer Rauchmelder binnen 30 Minuten dazu, so erhöht ioBroker über die Schnittstelle die Alarmmeldung und lässt alle Handys der aktiven alarmieren. Denke zu diesem Zeitpunkt ist eh schon Halligalli, aber es war der Wunsch der Führung hier zur Sicherheit eine Eskalation zu haben.
Bisher alles (zum Glück) nur graue Theorie und ausschließlich in gewollten Tests erprobt.
-
Nein, wir sind Nutzer der in Bayern etablierten Eldis/emid Schnittstelle. Die RIC wird vom Alamos Server im LRA zugewiesen und Feuersoftware müsste die uns zuschlüsseln - und das passiert nicht
-
So, hier jetzt die letzte Möglichkeit der Kontaktaufnahme:
Nachdem seit vergangenem Montag weder auf Mails an die Info@ antwortet noch auf die hinterlassenen AB Nachrichten, versuche ich es hier einmal. Der Telegram Chat mit Moritz ist auch gelöscht, scheinbar bin ich geblockt worden.
Zur Sache: Wir benötigen dringend die gemeldete RIC als Zuordnung am Standort. Wenn ihr schon euch das Recht vorbehaltet, dass nur ihr diese Änderung durchführen könnt, dann wäre die Erreichbarkeit auch wichtig! Ich bin echt angefressen - das geht gar nicht!
-
Ein Leerzeichen ist für Windows die Trennung. Das Fenster geht kurz auf, weil er versucht eine Datei bis zum Leer als Pfad auszuführen, nur da gibt es ja nix.
Setz den Pfad zum Aufrufen mal in " " (sowas wie "C:\Users\Feuerwehr XY\Desktop\Test.bat"), dann wird er gezwungen das inkl. dem Leerzeichen als ganzen Pfad zu lesen.
-
Gibt es bei der Dokumentation eine Möglichkeit eine Rubrik "neueste Einträge" einzuführen?
Mir ist schon mehrfach aufgefallen, dass es einen neuen Eintrag in Dokumentation gibt aber man gezielt alles Reiter durchsuchen muss um darauf zu stoßen (z.B. bei neuen Funktionen wie Infoboard oder Einsatzbericht).
Wäre super wenn man auf einem Blick sehen könnte ob es neue Einträge gibt welche sicherlich wissenswert sind.
-
Ufff, das ist hart . Was ist den mit den ganzen bereits gemeldeten Fehlern sowie den zahlreichen Verbesserungsideen?
Erst musste der Telegram Kanal daran glauben (was vielleicht noch zwecks Datenschutz etc. nachvollziehbar ist), aber jetzt den Bugtracker abzuschalten obwohl dieser sehr aktiv genutzt wurde ist übel.
Erlaubt mir die freche Frage: wie lange bleibt das Forum noch?
-
interessantes Tool, aber leider deckt das nur die Androidfraktion ab. Für Apple gibt es derartige Tools nicht (zumindest habe ich keines gefunden)
-
Ich bekomme aus der Mannschaft auch immer wieder Probleme gemeldet. Manchmal hilft das komplette schließen der App, manchmal ein reboot des Smartphones und manchmal auch ein verändern des Radius von +/-1km.....
Fazit: Aktuell geht es, aber nicht dauerhaft stabil.
-
korrekt, uns geht es ähnlich. Es geht nicht darum, dass jeder den Alarm mitbekommen soll (ich denke diese Wichtigtuer gibt es immer, losgelöst der Alarmdauer/Lautstärke) aber wir haben genug (auch selbstständige) Handwerker in der Wehr. Wenn der Schreiner gerade mal an der Kreissäge steht oder der Eli mit dem Schlagbohrer sich durch die Wand arbeitet sind 10 Sekunden Alarm leider gar nichts.
meine Meinung: Ihr macht euch zu viel Kopf darüber ob das für euch selbst sinn macht, aber es gibt Konstellationen die eben nicht immer abgedeckt sind. Wenn technisch nichts dagegen spricht eine Endlosschleife des Tons zu ermöglichen oder für die Bürohengste und Besprechungsjunkies "nur die Taschenlampe/Vibration dauerhaft blinken lassen", warum wird das nicht einfach eingebaut und dem Nutzer überlassen ob er das braucht/aktiviert oder nicht?
Klar, die Entwicklungskapazitäten sind nicht unendlich und es sollte in gelenkte Bahnen laufen, aber so etwas sehe ich im Grunde als schnell erledigt und unterbindet ein für alle mal Diskussionen über Alarmdauer und der Aufdringlichkeit der Alarme. Den Verweis auf "andere Apps können das ja auch" höre ich leider zu oft in der Wehr und hängt mir mittlerweile zum Hals raus.
-
Hallo,
da melde ich auch Interesse an. Selbst die längeren Töne P8GR sind bei manchen nicht ausreichend. Parallel gibt es auch noch den Bugtracker Eintrag für z.B. die Taschenlampe bei Alarm:
-
Hallo,
ich hab die Schulungsunterlage zum EinsatzTablet einmal durchgesehen und leider keine Antwort gefunden:
Wie komme ich aus der Einsatzansicht zurück zum Hauptmenü? Quasi der Bildschirmschoner bzw. das "aktuell kein Einsatz aktiv"?
Bisher sag ich zu den Leuten schließt die App und öffnet sie neu, aber das kann nicht so im Sinne des Erfinders sein.
-
Hey,
hast du mal auf openstreetmap geschaut ob dort überhaupt Hausnummern vergeben sind?
Bei uns konnte das über die Adresse auch nicht aufgelöst werden, da in kompletten Straßenzügen die Hausnummern nicht gepflegt sind.
-
Moin,
hast du das hier gesehen:
Einstellungen Alarmton & Apple Watch - Feuer Software GmbH
Mich als AW-Träger stört das auch tierisch dass nur entweder oder geht, aber das ist eher Apple anzukreiden als Feuersoftware.
-
Das reicht nicht zu verändern?
mal was anderes: läuft das mit der eigenen Webseite als Standbyelement stabil über mehrere Wochen bei euch? Bei uns wird nach einer gewissen Zeit bzw. auch bei Auflösungsänderungen das ganze nicht mehr angezeigt (siehe Bugtracker 0000492: Standbyelement "Webseite" wird oft nicht geladen - Feuer Software GmbH - Bugtracker) Einzige Hilfe ist den Einsatzmonitor komplett zu beenden und neu zu starten.
-
Moin,
das Thema ist nicht neu und wurde schon öfters gefordert. Im Bugtracker ist aktuell auch noch ein Ticket offen (0000470: Einfache Nachalarmierung - Feuer Software GmbH - Bugtracker). Die letzte Antwort von Dirk war;
Zitat2022-10-31 14:20
Hallo, euer Request ist weiterhin in der Planung. Allerdings ist eine Alarmierung ohne die Einbeziehung der Alarmgebenden Stelle in den meisten Bundesländern nicht zulässig. Daher wird eine solche Funktion nur mit vorhandener bidirektionalen Anbindung an eine Leitstelle möglich sein. Nur so kann sichergestellt werden, dass die Alarmgebende Stelle über den Nachalarm informiert wird und die notwendigen Mindestangaben, wer und wann der Alarm gefordert wurde mit übergeben werden. -
Kann das Programm ein Export als z.B. PDF? Oder per PDF Drucker eine PDF erstellen?
Dann könntest du regelmäßig (und ggf. automatisiert) eine PDf erzeugen und der EM zeigt lediglich die PDF an.
-
Hey,
was brauchst du genau? Es ist ein Android 11, das Gerät ist ein 10,1" Oukitel RT1 Outdoor Tablet.
Wenn du Logs brauchst kann ich dir heute Abend was organisieren, da müsste ich aber wissen was du brauchst.
-
Hallo,
wenn die aktuelle stable Version unter Android frisch geöffnet wird erscheint die Meldung "FahrzeugApp reagiert nicht" nach ein paar Sekunden.
Wenn ich "warten" drücke kommt die Meldung im weiteren Verlauf nicht mehr, auch nicht wenn sie aus dem Hintergrund geholt wird. Immer nur beim ersten öffnen - quasi aus dem Kaltstart heraus.
Ich verwende 2 Tablets, das Verhalten ist identisch. Android 11 auf einem Octacore mit 4GB ram. Sonst ich nichts geöffnet und der Fehler erscheint auch wenn das Tablet frisch gestartet wurde.
Jetzt ist Android nicht mein Steckenpferd, gibts hier noch etwas zum justieren oder einstellen?