PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Übergabe - Interesse?



Smith
12.08.2012, 20:48
Moin,

Bevor ich mir jetzt die Arbeit mache und hier ein Skript zur Umsetzung für euch schreibe, würde ich gerne wissen ob Interesse an einem HowTo inkl. fertigen (einfachem) PHP-Sktipt besteht um die Daten aus Bosmon in die MySQL DB einzutragen. (freie Feldwahl im table)

Ihr benötigt eigentlich nur einen Webserver, php, MySQL und auf dem Auswerter PC Bosmon mit wget.exe (freeware). Es lässt sich so eine eigene Webansicht schreiben und man ist nicht auf die des BosMon angwiesen.

VG!

bosmon
13.08.2012, 00:04
Hallo,

vielen Dank für Deine Mühe. Ich freue mich natürlich immer, wenn andere Entwickler sich darum bemühe, den Anwendungsbereich von BosMon zu erweitern.

Apropos Datenbank: BosMon kann bereits jetzt schon "ohne fremde Hilfe" in eine MySQL-Datenbank schreiben: http://www.bosmon.de/doc/Plugin:MysqlDB
In der Datenbank kann BosMon Telegramme, FMS Status und Telegrammbeschreibungen hinterlegen.

Grüße
BosMon

Smith
13.08.2012, 19:54
Keine Frage, das geht mit BosMon schon seit einiger Zeit. Allerdings hat es bei mir einiges an Fehlern produziert bzw. lies keine Fehlererkennung zu.
Ich hatte auf jedenfall starke Probleme dies zu realisieren.
Der Vorteil bei meiner Lösung liegt auf der Hand:
Ich kann mir meine Felder für das Projekt selber aussuchen. Es gibt mittlerweile einiges an Frontends welche sich durch diesen PHP-Connector einfach befüllen lassen. Der Vorteil bei der ganzen Sache, keine Abstürze irgendwelcher Zusatzprogramme. Ich hatte unter FMS32 hier damals einige Probleme mit den Tools die hier angeboten wurden.

Schlecht machen will ich euch nicht, Ihr leistet einen guten JOB! ;)
Nur falls jemand halt auch eine andere Möglichkeit braucht, ich biete es gerne an.

PS.: Alles zu was ich in BosMon eine Aktion ausführen lassen kann und wo Daten mit übergeben werden können lassen sich in die DB schreiben, also auch FMS, etc... :-)

bosmon
16.08.2012, 10:34
Hallo,

wenn Du Fehler im MySQL-Modul von BosMon entdeckt hast immer raus damit wo es hakt. Bugreports können hier im Forum, im BosMon Forum und per Mail an support@bosmon.de gesendet werden.

Grüße
BosMon

AkkonHaLand
16.08.2012, 11:15
Wie wäre es denn, wenn ihr beide euch mal zusammensetzt und besprecht, wie man ggf. zusammen BosMon verbessern kann statt hier im Forum zwei getrennte Programme zu bewerben?

Smith
21.08.2012, 17:14
Ich will an BosMon nicht mitarbeiten :)
Und ein eigenes Programm habe ich auch nicht geschrieben. Es ist nur ein kleines PHP-Skript. Programm wäre schon fast übertrieben *g*

Ich stelle es einfach mal ein. Für Fehler übernehme ich keine Garantie oder Haftung etc...
Vorraussetzung:
Auf dem Windows Alarm PC:
- BosMon
- wget (google nach wget Windows)
In BosMon unter Telegram Ereignisse als Programm ausführen:


C:\wget\wget.exe -O log.txt "http://hier-gehts-zum-Server.de/poc_in.php?alarm_ric=%adresse%&alarm_sub=%funktion%&alarm_text=%meldung%&passwort=ef4b25b358927c035a546f5115e63333"


Auf dem Webserver:
- php
- mysql
- Das Script

poc_in.php


<?php
/* POCSAG Schnittstelle für Alarmierung
Einfügen einer DME-Alarmierung in MySQL-Datenbank per URL:
poc_in.php?alarm_ric=%adresse%&alarm_sub=%funktion%&alarm_text=%meldung%&passwort=ef4b25b358927c035a546f5115e63333

Variabelen:
$alarm_ric RIC des DME
$alarm_sub Sub-RIC
$alarm_text Meldung

*/
// Zum Fehlerfinden nächste Zeile auskommentieren:
// error_reporting(E_ALL);

// Fixe Zugangsdaten mysql
$db_server = 'localhost'; // Datenbankserver
$db_user = "DBUSER"; // Datenbankuser
$db_password = "DBPASSWORT"; // Passwort zum Datenbank User
$db_database = "POCSAG"; // Datenbank
$db_table = "pocsag_table"; // Tabelle
$passwort = "ef4b25b358927c035a546f5115e63333" // Passwortschutz um Daten einzutragen
// URL Vars
$alarm_ric = $_GET["alarm_ric"]; // RIC
$alarm_sub = $_GET["alarm_sub"]; // Sub-RIC
$alarm_text_get = $_GET["alarm_text"]; // Alarmtext ins urlencode
$alarm_text = urldecode($alarm_text_get); // alarmtext in DB


// Wenn Subric als Zahl benötigt wird, so lassen. Ansonsten auskomentieren, dann als Buchstabe a bis d
// RIC Subric von Text in Integer
$alarm_sub = str_replace("a", "1", $alarm_sub);
$alarm_sub = str_replace("b", "2", $alarm_sub);
$alarm_sub = str_replace("c", "3", $alarm_sub);
$alarm_sub = str_replace("d", "4", $alarm_sub);


// Password und Leerabfrage
if(!empty($_GET['alarm_text']) && !empty($_GET['alarm_ric'])) {
if($_GET['passwort'] == "$passwort") goto weiter;
else {
echo "Passwort/Username falsch!";
goto ende;
}
}
else {
echo "Keine Vars übergeben!";
goto ende;
}

weiter:

$verbindung = mysql_connect("$db_server",
"$db_user", "$db_password")
or die ("keine Verbindung möglich.
Benutzername oder Passwort sind falsch");

mysql_select_db("$db_database")
or die ("Die Datenbank existiert nicht.");

$eintrag = "INSERT INTO $db_table
(ric, funktion, text, einsatz)
VALUES
('$alarm_ric', '$alarm_sub', '$alarm_text')";

$eintragen = mysql_query($eintrag);

if($eintragen == true)
{
echo "Eintrag war erfolgreich";
}
else
{
echo "Fehler beim Speichern";
}

ende:
?>


die Mysql DB muss nach dem Script oben folgende Spalten enthalten:
id, ric, funktion, text
per phpmyadmin mit SQL Befehl:



CREATE TABLE `POCSAG`.`pocsag_table` (
`ID` INT( 5 ) NOT NULL ,
`time` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
`ric` INT( 7 ) NOT NULL ,
`funktion` INT( 1 ) NOT NULL ,
`text` VARCHAR( 255 ) NULL
) ENGINE = MYISAM ;


Testen kann man zum Schluss eben per Hand mit:


http://hier-gehts-zum-Server.de/poc_in.php?alarm_ric=1234567&alarm_sub=a&alarm_text=Testnachricht zur Datenbank&passwort=ef4b25b358927c035a546f5115e63333


Ich hoffe ihr habt Spaß daran. Durch dieses Script und passenden Filtern lassen sich alle Alarme oder nur die der eigenenen Einheit in die Datenbank schreiben.
Läuft hier super.

Grüße
Smith