PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alarmierungstool Alarm-Rückmeldung und Verfügbarkeitsübersicht



tobiasb2010
05.08.2015, 15:53
Hallo zusammen,

ich habe eine Idee zur Alarm- und Verfügbarkeitsrückmeldung.
Nun meine Frage, ob jemand eine Lösung kennt, die kostenlos ist bzw. ein Script, dass entsprechend angepasst werden könnte?

Die Rückmeldungen der Einsatzkräfte werden in eine Textdatei gespeichert. Format Rufnummer.txt

Der Inhalt der Textdatei sieht so aus:

>> - Nachricht ankommend
05.08.2015 - Datum der Nachricht
11:18:12 - Uhrzeit der Nachricht
Ja 10 - Nachricht

>> 05.08.2015 11:18:12 Ja 10
Die Ja 10 bedeutet, dass der Kamerad zum Einsatz kommt und in 10 Minuten am Gerätehaus ist.

>> 05.08.2015 11:18:12 Nein
Der Kamerad kommt nicht zum Einsatz.

>> 05.08.2015 11:18:12 S6
S6 bedeutet, dass der Kamerad nicht Einsatzbereit ist. (Status 6)

>> 05.08.2015 11:18:12 S2
S2 bedeutet, dass der Kamerad zu Hause ist. (Status 2)

>> 05.08.2015 11:18:12 S1
S1 bedeutet, dass der Kamerad nicht zu Hause, aber im Einsatzgebiet ist. (Status 1)

Nun möchte ich diese Rückmeldungen auswerten und aufbereitet als html-Datei darstellen.
Über eine Zuordnung soll dann der Name, Lehrgang, etc. dargestellt werden (Beispiel siehe Anhang).

Danke schonmal im Voraus ;)

Dtrieb7482
25.08.2015, 12:07
Nicht direkt so wie du das suchst,
aber vielleicht hilft dir das weiter:

http://statusmonitor.drk-vaihingen.de

scripter
26.08.2015, 12:04
Hallo,
ich habe durch Zufall die letzten Tage an einer Lösung für ein ähnliches "Problem" mit der Smartphone App Telegram gebaut. In Telegram kann man Bots erstellen welche von einem PC aus gesteuert werden können. Ein Nutzer Startet dann sozusagen einen Chat mit dem Bot, wenn anschließend ein Alarm eingeht, Benachrichtigt der Bot die zuvor angemeldeten Nutzer des Bots und Stellt die Frage ob er zum Einsatz kommt. Die Rückantwort wird dann entsprechend ausgewertet und bei uns am Einsatzmonitor vermerkt.

Wenn Interesse besteht kann ich dir den teil des NodeJS Scriptes mal auszugsweise zur Verfügung stellen.

Dtrieb7482
26.08.2015, 18:19
Hallo,
ich habe durch Zufall die letzten Tage an einer Lösung für ein ähnliches "Problem" mit der Smartphone App Telegram gebaut. In Telegram kann man Bots erstellen welche von einem PC aus gesteuert werden können. Ein Nutzer Startet dann sozusagen einen Chat mit dem Bot, wenn anschließend ein Alarm eingeht, Benachrichtigt der Bot die zuvor angemeldeten Nutzer des Bots und Stellt die Frage ob er zum Einsatz kommt. Die Rückantwort wird dann entsprechend ausgewertet und bei uns am Einsatzmonitor vermerkt.

Wenn Interesse besteht kann ich dir den teil des NodeJS Scriptes mal auszugsweise zur Verfügung stellen.


Ich würde mich über einen Veröffentlichung freuen!

DIVERA 24/7
27.08.2015, 09:47
Hi!

Wir bieten mit DIVERA 24/7 free (siehe https://www.divera247.com/versionen/kostenlos.html) eine Software an, die sich der geschilderten Problematik annimmt.

Der Status lässt sich telefonisch, per Browser und demnächst auch via App ändern. Ein Modul zur Alarmierung ist ebenfalls in Vorbereitung.

Einfach mal ausprobieren. Wünsche und Erweiterungsvorschläge sind jederzeit willkommen :)

scripter
27.08.2015, 14:11
Ich pack hier mal das Modul für den Bot einfach so rein. Ist prinzipiell recht easy und auch noch nicht zu 100% fertig.



exports.init = function (app) {
var telegram = require('../../lib/telegram-bot-api');
var TelegramBot = {
api: new telegram({
token: app.config.TelegramBot.API_Key,
updates: {
enabled: true
}
}),
users: { //Chat IDs welche die Nachricht bekommen sollen, wird mit /start im telegram automatisch hinzugefügt. Speichern der Liste fehlt noch
'xxxxxxxxx': {id: xxxxxxxxx, first_name: 'Test', username: 'Test'}
},
user_einsatz: {
aktiv: null,
kraefte: {}
},
broadcast: function (selfID, text) { //Nachricht an alle user rausschicken ausser den eigenen
for (var u in this.users) {
if (u != selfID) {
this.api.sendMessage({
chat_id: u,
text: text
}, function (err, data) {
console.log(data);
});
}
}
},
start: function (alarm) { //diese funktion wird aufgerufen sobald ein alarm ankommt
this.send(alarm);
},
send: function (alarm) {
//Einsatznummer setzen und userliste zurücksetzten
this.user_einsatz.aktiv = alarm.ENR;
this.user_einsatz.kraefte = {};

var schwere = '';
if (alarm.schwere) {
schwere = ' (' + alarm.schwere + ')';
}

for (var u in this.users) {
var ret = this.api.sendMessage({
chat_id: u,
reply_markup: JSON.stringify(
{
keyboard: [ //Hier können noch weitere Nachrichten ergänzt werden
[
'/Ja ich komme!'
],
[
'/Nein ich komme nicht!'
]
],
one_time_keyboard: true
}),
text: "\u26a0" + ' Alarm ' + "\n" + alarm.Stichwort + schwere //Text welchen der Bot zum User sendet
});
console.log(u, ret);
}
},
stop: function () { //Reset funktion welche nach einem gewissen Timeout vom Alarmsystem aufgerufen wird
TelegramBot.user_einsatz = {
aktiv: null,
kraefte: {}
};
}
};

TelegramBot.api.on('message', function (message) {
console.log('message', message);
if (message && message.text) {
var cmd = message.text.split(' ')[0].toLowerCase();

if (cmd[0] == '/') { //Auswertung der Komandos (/Ja /Nein)
if (TelegramBot.user_einsatz.aktiv) { //Ist überhaupt ein Einsatz?
if (cmd == '/ja') {
var msg = ["\uD83D\uDD35"];
if (message.chat.first_name) {
msg.push(message.chat.first_name);
}
if (message.chat.last_name) {
msg.push(message.chat.last_name);
}
msg.push('kommt!');
TelegramBot.broadcast(message.chat.api, msg.join(' '));

TelegramBot.user_einsatz.kraefte[message.chat.id] = message.chat;
} else if (cmd == '/nein') {
var msg = ["\uD83D\uDD34"];
if (message.chat.first_name) {
msg.push(message.chat.first_name);
}
if (message.chat.last_name) {
msg.push(message.chat.last_name);
}
msg.push('kommt NICHT!');

TelegramBot.broadcast(message.chat.api, msg.join(' '));
}
}
} else { //Bei sonnstigen nachrichten wird der User hinzugefügt, hier muss noch eine Verifizierg eingebaut werden!
if (!TelegramBot.users[message.chat.id]) {
TelegramBot.users[message.chat.id] = message.chat;
}
console.log(TelegramBot.users);
}
}
});
return TelegramBot;
};


https://www.npmjs.com/package/telegram-bot-api bzw. https://github.com/mast/telegram-bot-api wären die node module dazu.

Über die Telegram Bots: https://telegram.org/blog/bot-revolution


Wie schon geschrieben ist das nur ein Modul von diversen. Ich habe prinzipiell eine Software welche die Einsätze via Serialport auf einem Raspberry Pi vom Piepser ausliest und den Text Auswertet. An dem Raspi hängt dann ein 40" Monitor in der Wagenhalle welcher den Text entsprechend ausgibt und in der unteren Ecke Alarmierungszeit, Minuten seit Alarmierung und jetzt auch die Rückmeldungen der Kameraden mit angibt. Die Frage ist halt inwiefern bei einem Einsatz tatsächlich jemand darüber Rückmeldung gibt ob er kommt oder auch nicht...

tobiasb2010
02.09.2015, 00:01
Ich pack hier mal das Modul für den Bot einfach so rein. Ist prinzipiell recht easy und auch noch nicht zu 100% fertig.



exports.init = function (app) {
var telegram = require('../../lib/telegram-bot-api');
var TelegramBot = {
api: new telegram({
token: app.config.TelegramBot.API_Key,
updates: {
enabled: true
}
}),
users: { //Chat IDs welche die Nachricht bekommen sollen, wird mit /start im telegram automatisch hinzugefügt. Speichern der Liste fehlt noch
'xxxxxxxxx': {id: xxxxxxxxx, first_name: 'Test', username: 'Test'}
},
user_einsatz: {
aktiv: null,
kraefte: {}
},
broadcast: function (selfID, text) { //Nachricht an alle user rausschicken ausser den eigenen
for (var u in this.users) {
if (u != selfID) {
this.api.sendMessage({
chat_id: u,
text: text
}, function (err, data) {
console.log(data);
});
}
}
},
start: function (alarm) { //diese funktion wird aufgerufen sobald ein alarm ankommt
this.send(alarm);
},
send: function (alarm) {
//Einsatznummer setzen und userliste zurücksetzten
this.user_einsatz.aktiv = alarm.ENR;
this.user_einsatz.kraefte = {};

var schwere = '';
if (alarm.schwere) {
schwere = ' (' + alarm.schwere + ')';
}

for (var u in this.users) {
var ret = this.api.sendMessage({
chat_id: u,
reply_markup: JSON.stringify(
{
keyboard: [ //Hier können noch weitere Nachrichten ergänzt werden
[
'/Ja ich komme!'
],
[
'/Nein ich komme nicht!'
]
],
one_time_keyboard: true
}),
text: "\u26a0" + ' Alarm ' + "\n" + alarm.Stichwort + schwere //Text welchen der Bot zum User sendet
});
console.log(u, ret);
}
},
stop: function () { //Reset funktion welche nach einem gewissen Timeout vom Alarmsystem aufgerufen wird
TelegramBot.user_einsatz = {
aktiv: null,
kraefte: {}
};
}
};

TelegramBot.api.on('message', function (message) {
console.log('message', message);
if (message && message.text) {
var cmd = message.text.split(' ')[0].toLowerCase();

if (cmd[0] == '/') { //Auswertung der Komandos (/Ja /Nein)
if (TelegramBot.user_einsatz.aktiv) { //Ist überhaupt ein Einsatz?
if (cmd == '/ja') {
var msg = ["\uD83D\uDD35"];
if (message.chat.first_name) {
msg.push(message.chat.first_name);
}
if (message.chat.last_name) {
msg.push(message.chat.last_name);
}
msg.push('kommt!');
TelegramBot.broadcast(message.chat.api, msg.join(' '));

TelegramBot.user_einsatz.kraefte[message.chat.id] = message.chat;
} else if (cmd == '/nein') {
var msg = ["\uD83D\uDD34"];
if (message.chat.first_name) {
msg.push(message.chat.first_name);
}
if (message.chat.last_name) {
msg.push(message.chat.last_name);
}
msg.push('kommt NICHT!');

TelegramBot.broadcast(message.chat.api, msg.join(' '));
}
}
} else { //Bei sonnstigen nachrichten wird der User hinzugefügt, hier muss noch eine Verifizierg eingebaut werden!
if (!TelegramBot.users[message.chat.id]) {
TelegramBot.users[message.chat.id] = message.chat;
}
console.log(TelegramBot.users);
}
}
});
return TelegramBot;
};


https://www.npmjs.com/package/telegram-bot-api bzw. https://github.com/mast/telegram-bot-api wären die node module dazu.

Über die Telegram Bots: https://telegram.org/blog/bot-revolution


Wie schon geschrieben ist das nur ein Modul von diversen. Ich habe prinzipiell eine Software welche die Einsätze via Serialport auf einem Raspberry Pi vom Piepser ausliest und den Text Auswertet. An dem Raspi hängt dann ein 40" Monitor in der Wagenhalle welcher den Text entsprechend ausgibt und in der unteren Ecke Alarmierungszeit, Minuten seit Alarmierung und jetzt auch die Rückmeldungen der Kameraden mit angibt. Die Frage ist halt inwiefern bei einem Einsatz tatsächlich jemand darüber Rückmeldung gibt ob er kommt oder auch nicht...


Hallo,
ich habe durch Zufall die letzten Tage an einer Lösung für ein ähnliches "Problem" mit der Smartphone App Telegram gebaut. In Telegram kann man Bots erstellen welche von einem PC aus gesteuert werden können. Ein Nutzer Startet dann sozusagen einen Chat mit dem Bot, wenn anschließend ein Alarm eingeht, Benachrichtigt der Bot die zuvor angemeldeten Nutzer des Bots und Stellt die Frage ob er zum Einsatz kommt. Die Rückantwort wird dann entsprechend ausgewertet und bei uns am Einsatzmonitor vermerkt.

Wenn Interesse besteht kann ich dir den teil des NodeJS Scriptes mal auszugsweise zur Verfügung stellen.

Hey Danke, das sieht doch schonmal gut aus. Ich versuch da mal was zu kombinieren ;) wir machen rückmeldung per sms oder whatsapp, die versuche ich jetzt mal per php auszulesen. Mal schauen, ob's klappt, auch wenn aich nicht jeder an formatierung hält ;)

scripter
02.09.2015, 11:13
Per Whatsapp würde ich lassen, es gibt zwar Möglichkeiten da via undokumentierter API ran zu kommen, sobald die das aber merken fackeln die nicht lange mit der Schließung des Accounts.
Deswegen habe ich mich da für Telegram entschieden. Dokumentiert, Quelloffen und bietet gleich noch die Möglichkeit ne eigene Tastatur zur Frage mitzuliefern wo dann wirklich nur noch 2 Buttons da sind welche die Einsatzkraft drücken kann.

So schaut das dann bei mir in der Weboberfläche von Telegram aus:

http://www.funkmeldesystem.de/attachment.php?attachmentid=16610&stc=1&d=1441185266

Bei nem Blauen Punkt kommt die Einsatzkraft, bei nem Roten Punkt nicht. Recht simpel gehalten.
Man könnte das jetzt noch mit weiteren Möglichkeiten aufbohren wie "Komme in 10 min" oder so, aber für den Anfang reicht das glaube ich...

Übrigens: Von einem Gruppenchat würde ich abraten, da manche unserer Kameraden für den Chat nen Alarmton, ähnlich wie der vom Piepser, drinne hatten ham sich da manche nen Spaß draus gemacht und die mal früh um 2 aufstehen zu lassen :-/

tobiasb2010
01.10.2015, 18:18
Hallo zusammen,

wollte mich mal wieder zu Wort melden ;)
Inzwischen haben wir uns dafür entschieden SMS zu versenden.
Diese werden direkt am PC generiert und über ein GSM Modem versendet.

Als Tool verwende ich Gammu, welches über ein PowerShell Script gefüttert wird. Die einzelnen Handynummern dazu sind in Textdateien abgelegt.

Viele Grüße