Aus der Erinnerung heraus hab ich .exe immer per „start“ aufgerufen und nur andere Batchdateien per „call“.
Keine Ahnung ob das hilft, ist mir nur aufgefallen
Aus der Erinnerung heraus hab ich .exe immer per „start“ aufgerufen und nur andere Batchdateien per „call“.
Keine Ahnung ob das hilft, ist mir nur aufgefallen
das hier schon gesichtet?
Weitere Alarmtöne sind nicht geplant.
Darf ich fragen warum? Hab ihr angst dass die App nochmal 50MB größer im Appstore steht oder warum ist diese äußerst restriktive Vorgehensweise?
Aus Erfahrung höre ich jetzt schon wieder das genöle aus der Mannschaft da vielen entweder die Töne zu kurz sind oder die Ton-Frequenz als Maschinenführer oder Bandarbeiter nicht passt.
Alternativ bring ich wieder mal das Thema "eigener Sound" für die Alarmierung ins Spiel, damit wären alle Fliegen im Bereich der Sounds ein für alle mal erschlagen.
Guten Morgen,
da schließe ich mich an. Heute morgen ganz schön komisch geschaut als ich 2 Whatsapp-Nachrichten von Kollegen hatte was jetzt genau wegen der neuen Version zu machen ist.
Überlasst bitte den (Orga)-Admins die interne Kommunikation.
Danke
Nur mal so aus Interesse bei so vielen Bildschirmen: Wie viele Standbyelemente und in welchem zeitlichen Durchlauf habt ihr das System im Einsatz?
wir sind an der ILS Würzburg angeschlossen, da kann ich berichten: nein
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?