IPS-Variablen über externe Programme mit Parametern ändern

Hallo,

ich habe ein Problem, das ich in meinen Augen mit IPS nicht lösen kann… Wenn jemand eine Idee hat, wäre das super, wenn das noch nicht lösbar ist, wäre es doch super da eine Lösung zu integrieren, da das sicher für mehrere Leute interessant sein dürfte… Ich beschreibe einfach mal meinen konkreten Fall, das kann ja jeder auf sich beziehen, wie sinnvoll diese Funktion wäre g

Ich bin dabei eine Visualisierung für eine Feuerwehr zu erstellen. Da das komplette Haus bereits über EIB verfügt und ich es über IPS visualisieren will kam natürlich die Idee auf, im Falle eines Einsatzes die Infos dazu auf den IPS-Monitoren anzuzeigen. Soweit kein Problem. Nur wie bekomm ich die Infos zum Einsatz in IPS?

Ich habe Variablen angelegt die folgenden Inhalt haben:

  • Einsatzart (passend sollen über IPS die Tore der betreffenden Fahrzeuge geöffnet werden, sobald der erste das Licht einschaltet, was über IPS ja problemlos möglich wäre)

  • Einsatzanschrift Soll einfach auf den Monitoren angezeigt werden neben der Einsatzart

Ein Programm zum Empfang der digitalen Einsatzdaten unserer Leitstelle ist natürlich vorhanden. In diesem kann ich bei Auslösung eines Alarms ein Programm mit Parametern ausgeben lassen (z.B. Programmname.exe %1 %2), wobei als Parameter %1 die Einsatzart und %2 die Adresse übertragen wird…

Hier wäre meine „Lücke“ im IPS… Es wäre doch super, wenn es ein kleines Tool geben würde, das Variablen und Inhalte als Parameter bekommen könnte und diese dann in IPS ändert?

Oder gibt es sowas schon und ich bin „betriebsblind“? :wink:

Gruss Daniel

Schreib die Daten doch in eine Textdatei und lies sie zeilenweise in Variablen.

Hallo,

die Idee hatte ich auch schon… Nur zwei Probleme:

  • Wie lese ich mit IPS eine Textdatei aus? --> lösbar!

  • Dann muss ich ca. alle 10 Sekunden die Datei auslesen lassen. Das geht sicher auf die Ressourcen. Wenn ich das über ein Tool oder ähnlich machen könnte, würde sich nur bei einer wirklichen Aktion was tun…

Gruss Daniel

Die Lücke ist real, habe ähnliches Problem auch schon mal angesprochen (bzgl. Logfile einlesen, z.B. per „tail“-Kommando (eigentlich Unix, gibts aber auch für Win)

„RegisterVariable“ würde sich ja anbieten zu benutzen, aber womit eingangsseitig verbinden?

Bleibt als Workaround wohl wirklich nur der Umweg über eine Datei. Also z.B. das Sendekommando ruft direkt ein PHP-Script am DOS-Prompt auf, das den „Alarmstring“ schreibt (einfachere Form: per Dateiumleitung den Original-Output direkt in eine Datei schreiben, z.B. „alarmer.exe %1 %2 >C:\alarme\alarm.txt“)

IPS holt sich diese Datei durch ein z.B. 10-sekündlich laufendes Script „rein“ und verarbeitet es weiter.

Aber Achtung: Gerade für den beabsichtigten Einsatz ist Sicherheit hier wichtig. Problem könnte hier in der potentiell möglichen „Mehrfachbearbeitung“ liegen, d.h. Datei wird geschrieben, aber bevor es eingelesen / verarbeitet wurde, wird eine weitere, neuere Datei geschrieben. Evtl. wird ein zweiter Alarm auch schreibend „blockiert“, da der erste „noch nicht mit schreiben fertig ist“

Umgehbar wäre das z.B. mit o.g. PHP-Script statt direkter Output-Umleitung in ein File, wobei dann das Script selbst durchaus parallel mehrfach startbar wäre, aber vielleicht Zeitstempel oder laufende Zählerstände in die Dateinamen der zu schreibenden (und durch IPS zu lesenden) Dateien einbaut, d.h. es entstehen im Extremfall parallel mehrere Dateien.

Der Einlese-Part von IPS überwacht dann wiederum ein ganzes Verzeichnis und löscht quasi als Quittung die „erfolgreich behandelten Dateien“ (oder benennt die um, kopiert die woandershin o.ä.), könnte also immer „alle im Verzeichnis anstehenden Dateien (eines Dateityps) parallel einlesen / behandeln“

Besser ließe sich das natürlich per Datenbank machen, da sind solche „Prozess-Lockingmechanismen“ ja schon vorhanden. Das macht ja gerade so ein Datenbanksystem aus. Das ist aber natürlich eine Frage des Aufwandes / ob das gewollt / bezahlt wird. Andererseits bestehen aber sicher Software-Quali- und Wartungsanforderungen, gerade bei derartiger sicherheitsrelevanter Prozessen, da könnte das sogar zwingend werden hier z.B. zertifizierte Datenbank-Schnittstellen einzusetzen statt mit „selbstgestrickten“ Fileschnittstellen zu werkeln.

Eine „füttern“ der DB per parametrisiertem Aufruf ist damit allemal möglich.

Übrigens gibt es Oracle, MSSQL und Co auch aus Lizenzsicht kostenfrei als „runtime“, solange nicht mehr als x User / yGB DB-Größe im Einsatz sein müssen (was hier ja niemals der Fall sein muß).

Wenn dazu Fragen oder Beratungsaufwand: Einfach stellen, gern auch per PM oder Tel

Gruß Gerd

per timer getriggertes PHP-Script

genau das ist das Problem. Geht auch auf die Platte (jahrelang alle 10sek lesen usw) Ist das ein Server? Dann ginge das. Notebook- oder PC-Technik besser da nicht nehmen, nicht bei dem Einsatzzweck!

Es gibt da auch noch die Möglichkeit mit TRIXI direkt eine Variable zu füllen.

TRIXI ist eine DLL zu der ich ein Beispiel getippt habe, wie man eine Excell Tabelle mit IPS verknüpft. Man müsste also nur die Parameter in die Excell Tabelle tippen und abfeuern. Eine Netzwerkschnittstelle ist schon integriert und vorkonfiguriert „für Dummies“ :wink:

Natürlich kann man TRIXI nicht nur in VB(A) verwenden. Wenn zufällig ein C#, C++ oder .NET Programmierer (Win32 Plattform) Interesse an dem Projekt hat… Ich würd es gern mit ihm zusammen vorantreiben. Allein iss immer doof :smiley:

Infos und sources gibts direkt von mir. Am liebsten im Chat oder notfalls per PM.

Toni

Die Lücke ist nur in der Dokumentation.
Es gibt da das Device „ShellEvent“!
Dies wird nur ausgelöst, wenn eine Datei geändert oder neu angelgt wird.
Der betreffende Pfad kann festgelegt weden. Darauf hin kann ein
IPS-Script gestartet werden, das z.B. die Datei einliest und auswertet.

Einfach mal ein ShellEvent anlegen und schauen was da alles möglich ist.

Gruß

Stefan

Naja… Sicherheit ist nicht soooooo das Thema… Aktuell schreibt der, der die Meldung entgegennimmt diese auf eine Flipchart-Tafel… Oder auch nicht… Und Überlastungsprobleme mit gleichzeitigen Meldungen etc. sehe ich auch nicht bei z.B. 109 Einsätzen im Jahr 2007 :wink:

Habe jetzt die Funktion ShellNotify gefunden… Gibt es dazu irgendwo eine Doku? Habe mir gedacht ich mache einfach einen Ordner mit den entsprechenden Dateien (meldung.txt, stichwort.txt) und lese diese darüber bei Änderung aus und lasse dadurch ein Script triggern. Scheint mir genau dafür gebaut worden zu sein. Aber dokumentiert ist das Teil null? Man könnte es dann sogar soweit treiben und für jedes Fahrzeug den Status schreiben lassen und dann passend anzuzeigen, was das nächste ausrückende Fahrzeug ist, sobald sich eines als ausgerückt meldet…

IPS wird immer genialer freu

Gruss Daniel

Wieso macht ihr nicht einfach ein PHP Script, welches über den WebBrowser aufrufbar ist und nimmt wget?

wget für win32:
http://users.ugent.be/~bpuype/wget/


wget http://localhost/exec.php?param1=Hallo&param2=Welt

ungefährer Inhalt für „exec.php“


<?

SetValueString("param1", $param1);
SetValueString("param2", $param2);

?>

Grüße, paresy

PS: Die Idee ist übrigens von Olli.

schon wieder solches Geheimwissen… tststs :smiley:

aber überlebt das auch nach IPS V.2?
@paresy???

Das war eine typische Zeitüberschneidung g Hab ich schon probiert… Nur wie kann ich auslesen welche Datei wie geändert wurde? Meine Idee ist wie gesagt eine meldung.txt und stichwort.txt und dann evtl. noch die Fahrzeug-Statusfiles…

Diese Zahl sagt nicht wirklich was aus. Ein einziger durch „Blockade des Automatismus“ verlorener Alarm und dessen Folgen wäre m.E. schon fatal und Grund genug für eine standrechtliche Erschießung des Programmierers durch den Eigentümer des deshalb abgebrannten Häuschens…

Auf „Kalle mit der Kreide“ verläßt sich keiner, denn jeder weiß, das Menschen Fehler machen. Ein Automat hat dagegen zu funktionieren…

…was meinst du, warum wir das benutzen :smiley:

War wohl schlecht beschrieben :wink: Es wird mit IPS nicht der Einsatz übermittelt, das wäre nicht zulässig, da es dann zugelassen sein müsste und IPS von vornerein ausscheiden würde. Es soll nur damit der Komfort erhöht werden. Bisher ist es so, dass der erste im Feuerwehrhaus ankommende den Einsatz per Funk bei der Leitstelle abfragt und für die nachfolgenden auf eine Tafel schreibt. Dort sind auch für alle Stichworte die Ausrückeordnungen aufgedruckt (welches Fahrzeug in welcher Reihenfolge). Dies wird durch einen Magnet gekennzeichnet (z.B. wird bei einem Gebäudebrand der Pin bei „Löschzug“ angebracht).

Die Änderung mit IPS soll sein, diese Daten aus der Funkalarmierung direkt auszulesen und anzuzeigen. Rückmeldung muss trotzdem noch gemacht werden, da die Leitstelle sonst, wenn diese nicht kommt, automatisch weitere Kräfte alarmiert (ist schon in der Nachbarschaft vorgekommen, dass eine weitere Feuerwehr alarmiert wurde, da keiner die Rückmeldung gemacht hat, weil jeder gesehen hat, dass das Haus gegenüber der Feuerwehr lichterloh brennt). Ist also reiner Komfort. Und die Ausrücke-Reihenfolge könnte eben automatisch passend angezeigt werden, wobei dann automatisch die ausgerückten Fahrzeuge ausgeblendet werden. Das war bisher reine „Kopfarbeit“ g Fahrzeug 1 ist weg, also muss ich Fahrzeug 2 besetzen. Wäre also nur ein Gimmick. Wenn das nicht klappt und ein Fahrzeug nicht ausgeblendet wird, macht das null, weil man es ja spätestens merkt, wenn man einsteigen will, dass das Fahrzeug bereits ausgerückt ist :wink:

Gruss Daniel

ok, das macht Sinn. Bin wohl zu sehr von Leitstelle einer Großstadt-FW und deren ISO- und sonstwas-Normen bei Beschaffung (egal wofür) ausgegangen… Bei FF’s usw. sieht das sicher alles etwas „ziviler“ aus :smiley:

Der wget-Ansatz von Paresy scheint mir aber dennoch sehr interessant. Ich grüble nur gerade, wie ich das einbinde ins Simple-Web-Interface… Bisher dachte ich immer, cgi usw. geht dort gar nicht

Gruß Gerd

Da wir schon auf Seite 2 sind, verweise ich mal auf meinen Beitrag auf Seite1:

paresy

okay… übersehen :wink:
sieht gut aus… muss ich mir mal ansehen :wink:

hmm… bin ich jetzt doof? stellt ips nicht automatisch einen http-server zur verfügung? muss ich da jetzt noch nen apache installieren? weil so bekomm ich den fehler „connection refused“

menno, wat geht dat schnell hier…

s.o.:
„Der wget-Ansatz von Paresy scheint mir aber dennoch sehr interessant. Ich grüble nur gerade, wie ich das einbinde ins Simple-Web-Interface… Bisher dachte ich immer, cgi usw. geht dort gar nicht“

Oder meinst du per WIIPS?

Erstellt ein neues Device:

http://www.ipsymcon.de/wiki/index.php/Simple_Web_Interface

Port, Pfad anpassen und dort die php reinschieben.

paresy

alles klar. Und das dann mit wget durch das externe Alarm-Tool parametrisiert aufrufen… feine Lösung :slight_smile: