PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bei bestimmter Funktion keine Batch ausführen?



Danny
12.04.2004, 23:39
Hallo, ich benutze POC32 und wenn ein Alarm kommt, startet die Batch die auch die Funktion 1 bis 4 überprüft.

Allso zum Beispiel:

RIC 0194567 Funktion 0 = Kleinalarm
RIC 0194567 Funktion 1 = DLK Maschinisten
RIC 0194567 Funktion 2 = Vollalarm
RIC 0194567 Funktion 3 = Probealarm

Dann wird die jeweilige Stichwort mittels Clemail an SMS versendet.

Jetzt habe ich aber das Problem das die DAU Meldungen die selbe RIC haben, aber andere Funktionnummern.

Das heißt, ich möchte nicht infomiert werden wenn der DAU XY mit der Funktion 2 einen Reset macht, aber es wäre schon interessant wenn ich weis, das er komplett ausgefallen ist (Funktion 3)

Wie kann ich das in meiner Batch regeln?

Grüße

Danny

MiThoTyN
13.04.2004, 08:19
Also versteh ich das richtig, du willst eine SMS bekommen, wenn der DAU mit der RIC 1234567 und der SubRIC 3 eine Nachricht schickt/bekommt ?

Mach einfach ne IF Abfrage. Du bekommst ja von POC32 RIC FUNC und MSG übergeben. Und genauso wie du wohl mit IF die Texte an die SMS zuweist, kannst du durch ne Abfrage überprüfen ob ne SMS geschickt werden soll oder nicht.

Poste mal bitte deine bisherige Batchdatei.

Gruß Joachim

Danny
15.04.2004, 08:31
Hallo Joachim,

da hab ich aber echt schlecht beschrieben!

Der passende Text sollte Lauten:

RIC 0194567 Funktion 0 = Probealarm
RIC 0194567 Funktion 1 = Leitstellen Personal
RIC 0194567 Funktion 2 = DAU Meldungen
RIC 0194567 Funktion 3 = DAU Stoerung

Davon möchte ich nur die Funktion 3!

Meine Batch:

if exist "d:\baycom\poc32\status.txt" goto ende

echo "Alarm läuft" > status.txt


@Echo off
cls
Echo Alarmierung
if "%2"=="0" set text=Probealarm
if "%2"=="1" set text=Leitstellen Personal
if "%2"=="2" set text=DAU Meldungen
if "%2"=="3" set text=DAU Stoerung
echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o
d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 30

del status.txt

Grüße und Dank

Danny

MiThoTyN
15.04.2004, 08:48
Ach soo ... Na da wär echt nie einer dahintergekommen. So einfach ist das !! :-)



@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" goto ende
if "%2"=="1" goto ende
if "%2"=="2" goto ende
if "%2"=="3" set text=DAU Stoerung

cls
Echo Alarmierung
echo "Alarm läuft" > status.txt
echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o
d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 30

del status.txt
:ende



So musst du das ändern. Dann wird bei 0,1 und 2 direkt die Batch wieder verlassen und nur bei 3 wird die Alarmierung gestartet.
Alles was FETT ist hab ich geändert, bzw nur an eine andere Stelle verschoben. So macht das alles Sinn.

Gruß Joachim

Löwe-SE
15.04.2004, 10:30
Hi,

Und wer schreibt mir meine um *g* zumindest weil ich ja SmsCom nutze weil ich ja kein Dsl habe! Möchte aber auch nur den Sub B angezeigt bekommen....Wie mache ich des richtig?

@echo off
cls

echo Alarmierung per Handy aktiv. Bitte warten...
echo /t %2 %3 /n +49 172 40***** /d D2 /a 22222 > nachricht.txt

C:\Programme\SchmidtSoft\SMScom\smscom.exe nachricht.txt

Jemand ne idee?

MfG
Löwe-SE

MiThoTyN
15.04.2004, 10:37
Genauso. Einfach die IF's einfügen.



@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" goto ende
if "%2"=="1" goto start
if "%2"=="2" goto ende
if "%2"=="3" goto ende

:start
cls
echo Alarmierung per Handy aktiv. Bitte warten...
echo "Alarm läuft" > status.txt
echo /t %2 %3 /n +49 172 40***** /d D2 /a 22222 > d:\temp.txt
ansiasci d:\temp.txt d:\nachricht.txt /an /o
C:\Programme\SchmidtSoft\SMScom\smscom.exe d:\nachricht.txt
wait 30

del status.txt
:ende


Die zusätzlichen Zeilen verhindern zum einen ein doppeltes Versenden von SMS und wandeln den Windows-Zeichensatz in den DOS-Zeichensatz um.

EDIT:

Du musst noch mit den Verzeichnissen aufpassen die überall in der Batch-Datei stehen. Die müssen natürlich auf deine Wünsche angepasst werden!

Gruß Joachim

Löwe-SE
15.04.2004, 14:15
Danke!

Sehr geil, so wollte ich das haben!

MfG
Löwe-SE

Danny
16.04.2004, 08:17
Superklasse!

Danke vielmals!

Jetzt noch ne Frage:

ist es auch Möglich das man Suchbegriffe herausfiltert?

Zum Beispiel: Brandmeldeanlage, Ölspur und so was?

Ich meine das er die suchwörter erkennt und dann einfach auch zum Ende geht ohne etwas zu Machen?

Grüße

Danny

MiThoTyN
16.04.2004, 10:02
Darfs sonst noch etwas sein ? :-)



@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" goto ende
if "%2"=="1" goto ende
if "%2"=="2" goto ende
if "%2"=="3" set text=DAU Stoerung

echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o


find /c "BMA" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Ölspur" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten


cls
Echo Alarmierung
echo "Alarm läuft" > status.txt
d:\baycom\poc32\clemail.exe -to XXXX@gmx.de -from dXYX@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser 000000 -poppass XXXXX -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 30

del status.txt
:ende



Gruß Joachim

Danny
16.04.2004, 22:24
nein, momentan bin ich dann mal wieder super glücklich!

Vielen Dank!

Danny

Danny
19.04.2004, 20:25
Hallo, funktionierte nur einmal mit dem Filter, danach war schluß mit allem!
Problem ist, das er wenn eines dieser Suchwörter auftaucht sofort zum Ende geht und den Status text nicht löscht!
Dadurch werden andere garnicht erst gestartet!

Kann ich jetzt den Befehl del status text einfach nach Ende einfügen oder blickt der das dann nicht mehr?

Danny

MiThoTyN
19.04.2004, 20:36
Du kannst das hier

del status.txt
:ende

natürlich einfach umdrehen in das hier

:ende
del status.txt


Aber die Datei ist normal garnicht vorhanden, wenn keine SMS geschickt wurde.

Poste nochmal bitte deine aktuelle Batchdatei.
Denke da ist noch ein Fehler drinne irgendwo.

Gruß Joachim

Danny
19.04.2004, 20:42
hier ist Sie!

Aber er macht doch gleich nach der Subric unterteilung >status.txt und wenn du danach sagst GOTO Ende, wird die Datei nicht gelöscht!

Oder sehe ich das falsch?

Danny

@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" set text=FW-Xy
if "%2"=="1" set text=FW-xy-kleinalarm
if "%2"=="2" set text=FW-XY-Reserve
if "%2"=="3" goto Ende (FW-xy-Probealarm)

cls
Echo Alarmierung
echo "Alarm läuft" > status.txt
echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o

find /c "BMA" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Ölspur" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Türöffnung" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Brandmeldeanlage" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Probealarm" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Öl auf Strasse" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Proberuf" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 15

del status.txt
:ende

MiThoTyN
19.04.2004, 20:46
Hi Danny.

Dachte ich mir. Da ist noch ein kleiner Dreher drinne.
Das überprüfen der Stichwörter muss VOR dem erstellen
der Status.txt erfolgen. Also einfach so ändern :

Die Zeilen wo REM davorsteht kannst du übrigens weglassen.
Die werden eh nicht ausgeführt.

Das "(FW-xy-Probealarm)" hinter dem "goto Ende" muss auch weg.


Original geschrieben von Danny
@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" set text=FW-Xy
if "%2"=="1" set text=FW-xy-kleinalarm
if "%2"=="2" set text=FW-XY-Reserve
if "%2"=="3" goto Ende

find /c "BMA" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Ölspur" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Türöffnung" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Brandmeldeanlage" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Probealarm" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Öl auf Strasse" d:\Alarm.txt
if %errorlevel%==0 goto ende

find /c "Proberuf" d:\Alarm.txt
if %errorlevel%==0 goto ende


cls
Echo Alarmierung
echo "Alarm läuft" > status.txt
echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o


d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 15

del status.txt
:ende

Danny
25.04.2004, 10:23
Hey das funktioniert auch nicht!

Er hat dann keinen Text zum Übermitteln!

Ich probiere es jetzt mal so!

@Echo off

if exist "d:\baycom\poc32\status.txt" goto ende

if "%2"=="0" set text=FW-Xy
if "%2"=="1" set text=FW-xy-kleinalarm
if "%2"=="2" set text=FW-XY-Reserve
if "%2"=="3" goto Ende (FW-xy-Probealarm)

cls
Echo Alarmierung
echo "Alarm läuft" > status.txt
echo %3> d:\temp.txt
ansiasci d:\temp.txt d:\Alarm.txt /an /o

find /c "BMA" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Ölspur" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Türöffnung" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Brandmeldeanlage" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Probealarm" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Öl auf Strasse" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

find /c "Proberuf" d:\Alarm.txt
if %errorlevel%==0 goto ende
REM if %errorlevel%==1 echo Stichwort nicht enthalten

d:\baycom\poc32\clemail.exe -to xxxx@gmx.de -from xxxy@gmx.de -fromname %text% -smtpserver mail.gmx.de -popserver pop.gmx.de -popuser xxyx -poppass xyxyxy -subjectfile d:\Alarm.txt -bodyfile d:\alarm.txt
wait 15

:ende
del status.txt



___________________________________-

Scheint ja dann doch nicht soooooooooo einfach zu sein!

Danny

Firefighter_elmo
24.02.2005, 18:08
Hi!

Erstmal sorry, das ich ein so altes theme nochmal aufgreife, aber ich hab halt die suchfunktion benutzt!! :-)


Bei mir funktioniert es nicht wie es soll mit den IF sätzen...

Hier mal meine Bat (ist noch nicht fertig):

if "%2"=="0" echo Feuer1 > c:\windows\desktop\poc32\alarm.txt
if "%2"=="1" echo Feuer2 > c:\windows\desktop\poc32\alarm.txt
if "%2"=="2" echo Feuer3 > c:\windows\desktop\poc32\alarm.txt
if "%2"=="3" echo Feuer4 > c:\windows\desktop\poc32\alarm.txt


Das problem ist, dass er für die variable %2 sofort den wert einsetzt, und dann passiert gar nix. Das sieht dann so aus:

if "1"=="0" echo Feuer1 > c:\windows\desktop\poc32\alarm.txt
if "1"=="1" echo Feuer2 > c:\windows\desktop\poc32\alarm.txt
if "1"=="2" echo Feuer3 > c:\windows\desktop\poc32\alarm.txt
if "1"=="3" echo Feuer4 > c:\windows\desktop\poc32\alarm.txt


Kann mir da eventuell jemand weiter helfen?

MiThoTyN
24.02.2005, 18:15
"ER" ?? Wer ist ER ??
Und wo setzt der sofort den Wert ein ?

Raff ich nicht ganz.

Gruß Joachim

Firefighter_elmo
24.02.2005, 18:19
Na er ist mein PC!!!

Schau doch mal den Unterschied:

Das ist die geschriebene Version
if "%2"=="0" echo Feuer1 > c:\windows\desktop\poc32\alarm.txt


und das passiert wenn die bat über poc32 ausgeführt wird:

if "1"=="0" echo Feuer1 > c:\windows\desktop\poc32\alarm.txt


für %2 wird sofort der wert 1 gesetzt. und in die Text datei wird nix reingeschrieben.

MiThoTyN
24.02.2005, 18:21
Wo siehst du das, dass er da sofort ne 1 reinschreibt ?

Firefighter_elmo
24.02.2005, 18:29
Habe mal einen Screenshot gemacht um es zu verdeutlichen!

Wie die Bat geschrieben ist, habe ich ja oben schon gepostet. Ich hoffe es wird dann verständlich! :-)

MiThoTyN
24.02.2005, 18:39
Ahhhh .. Jetzt .... Sorry. Stand aufm Schlauch.

Also dann ist doch alles ok. Dann ist die übergebene Funktion 1
Ich hab das bei mir mal getestet. Bei mir wird dann der richtige Text in die Textdatei geschrieben. Nämlich "Feuer2"

Gruß Joachim

Firefighter_elmo
24.02.2005, 18:42
Komische schache. Bei mir tut sich da gar nix. die %3 in die textdatei funktioniert einwandfrei. naja, dann werd ich mal noch nen bisschen rumprobieren müssen. irgendeinen grund wird es wohl haben, dass es bei mir nicht geht! :-)

MFG -Elmo

Firefighter_elmo
25.02.2005, 17:25
Jetzt geht es endlich!
Ich habe jetzt alle dateien in einen extra ordner außerhalb vom poc ordner getan. Und ausserdem müssen 2 ">" da stehen.

if "%2"=="0" echo Feuer1 >> c:\windows\desktop\poc32\alarm.txt


Jetzt funktioniert es so wie es soll!

THX @ MiThoTyN!

-Elmo

SteveHH
16.04.2005, 03:30
Hallo !


Wo bekomme ich dieses clemail.exe her ?! Ich habe mir schon den Wolf gegoogelt, aber ausser diversen Viren, die dieses Teil benutzen, nichts gefunden ... ;-)

Gruß,

Steve


P.S.: Gibt es noch eine andere möglichkeit, über POC32 in Verbindung mit DSL eine SMS zu verschicken !? Ich bin über alle Lösungsvorschläge/-ansätze dankbar !

MiThoTyN
16.04.2005, 03:35
Morsche !!

IBSS ist ne sehr einfache und kostengünstige Möglichkeit.

http://funkmeldesystem.de/foren/showthread.php?s=&threadid=15990

Gruß Joachim

Quietschphone
16.04.2005, 10:47
Servus!

Clemail gibt's hier: http://www.sureshotsoftware.com/clemail/

Gruß
Alex