wie kein Platz? Der war doch vorher aus schon da
Alternative Denkansätze: Muss "Einstellungen" immer so präsent (z.B. in der Einsatzansicht) sein oder das Menü scrollbar wäre keine Option?
wie kein Platz? Der war doch vorher aus schon da
Alternative Denkansätze: Muss "Einstellungen" immer so präsent (z.B. in der Einsatzansicht) sein oder das Menü scrollbar wäre keine Option?
Wird der "Standby" Button wieder in die Tablet-App eingebaut oder wie komme ich alternativ aus einem angewählten Einsatz wieder raus?
ich wäre weiterhin für m/s - das ist mein täglich Brot in der Windkraftbranche
Hi,
über die API kannst du die Rückmeldung realisieren, alles wichtige ist hier bereits zusammengefasst:
ich habe das Skript auf "httpGet" angepasst, da "request" deprecated ist, sonst habe ich keine Veränderungen vorgenommen.
// 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();
});
Alles anzeigen
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.