<br />
<b>Warning</b>: main() [<a href='function.include'>function.include</a>]: Failed opening '' for inclusion (include_path='.;C:\php5\pear;.;C:/Programme/IP-Symcon/scripts') in <b>C:\Programme\IP-Symcon\scripts\.currentscript</b> on line <b>35</b><br />
<br />
<b>Fatal error</b>: Class 'SMTP' not found in <b>C:\Programme\IP-Symcon\scripts\.currentscript</b> on line <b>37</b><br />
Die .currentscript sieht natürlich genauso aus, da Script über Execute ausgeführt.
wenn ich Deine Änderungen einbaue kommt trotzdem noch folgender Fehler:
<br />
<b>Warning</b>: main() [<a href='function.include'>function.include</a>]: Failed opening '' for inclusion (include_path='.;C:\php5\pear') in <b>C:\Programme\IP-Symcon\scripts\.currentscript</b> on line <b>35</b><br />
Den Ordner „C:\php5\pear“ gibt es bei nicht mal. Hab mal spasseshalber php5 installiert, auch dann nicht dieser Ordner.
als ipsymcon newbie habe ich ein kleines problem mit dem versand einer sms mit der „loesung“ sendsms + T-COM MMS Tool.
Alles klappt ohne Probleme nur bei der uebergabe von sendsms an das T-COM Tool wird nur die Handynummer uebergeben ! Das Textfeld bleibt leer, leider ?! Daher wird dann auch keine SMS verschickt !
In der neu.sms steht allerdings auch der Text korrekt drin und davor die handynummer.
Habe die Vermutung das es am Zeilenumbruch liegt denn die Handynummer wird ja korrekt uebergeben …
Hat jemand eine Idee wie ich das Fixen kann ?!
ALs System verwende ich ein XP-Prof. SP2 mit allen aktuellen Updates, Fixes etc. und IP-S.
Vielen Dank und Gruss
grodke
PS: oder kennt jemand eine andere Loesung evetl. direkt aus IPS heraus eine sms „direkt“ ohne umwege (ohne sms provider etc.) zu versenden.
Ich wuerde evetl. auch an den IPS-PC auch direkt ein Handy anschliessen nur wie ansteuern ?! Hat da jemand Erfahrungen bzw. Ideen. Bin um jeden Tip dankbar !
Hallo Steiner,
Ich habe (paresy hat mich darauf aufmerksam gemacht), Deinen Script übernommen, zum Mail versenden (Mainthema dieses threads).
Es klappt auch sehr gut. Fast!!! Ich bekomme immer „Error in AUTH“. Als ich aber spaßes halber das darauf folgendeexitauskommentierte, also trotzdem das Mail zu versenden versuchte, -> Hat das fehlerfrei funktioniert! :eek: Also ich habe das Mail erhalten!
Jetzt irritiert mich das natürlich, weil dein script an dieser Stelle eigentlich abbrechen sollte!
was soll ich nun tun? einfach die Authenticate() Funktion weglassen? bzw. dann keinen Fehler ausgeben, weils eh geht??
Oder können wir der Sache ganz einfach auch auf den Grund gehen und scripttechnisch richtig lösen?
Schöne Grüße und himmlischen Dank für diesen Superscript (mal abgesehen von dem problemchen),
Hinti
Wenn dein mail-server keine Authentifizierung verlangt, weil er wohl intern steht und so eingestellt ist, dann kannst du das AUTH-teil weglassen.
Habe ich bei mir intern so auch, da mein Mailserver so eingestellt ist, dass er als Relay (aber nur intern!) arbeitet.
Du kannst dann auch setzen:
//Benutzername u. Passwort
$username = „“;
$password = „“;
Außerdem auffällig ist noch folgendes:
Das Mail welches ich erhalte, beinhaltet keinen Absender, Gesendet: keine Angabe
Was steht denn bei dir unter?:
//Absender
$sendermail = „absender@name.tld“;
$sendername = „absendername“;
Das wird dann, denke ich vom Mailserver eingetragen.
Wohin sendest du nun eigentlich?
Int. Mailserver, oder extern?
Hast du den Mercury32 im Einsatz?
Den hatte ich vor Jahren auch schonmal für einige Zeit eingesetzt.
nein hab ich weggeschmissen. viel zu kompliziert. da muss
man tausende von einstellungen machen die mir nix sagen!
Ich verwende nun steiners script, mit dem sub-script („scripts/class.smtp.php“); geht ganz gut. fast genauso wie eben im mainposting.
leider möchte ich nun auch noch sms verschicken. dazu werde ich mich auch bei Clickatell für den SMS Gateway Service anmelden.
Da gibts leider Probleme, die akzeptieren meine telefonnummer nicht. Tja, österreichische one-mobilnummern
weichen wohl stark von den allgemeinen dieser welt ab :rolleyes: Ich habe ihnen eine Info gesendet, vielleicht können wir das Problem dann ja noch lösen.
Diese Woche habe ich leider keine oder nur wenig Zeit. Melde mich dann was rausgekommen ist.
habe die Frage erst heute gesehen. Das „sendsms.exe“ stammt von mir.
Tut mir leid, wenn es bei dir nicht läuft.
Inzwischen habe ich aber eine Lösung gefunden die ohne das „sendsms.exe“ auskommt und dank PHP- für jeden durchschaubar und abänderbar seien sollte.
Die Lösung nutzt „Windows Scripting“ um die Tasteneingabe an das T-Com MMS Programm zu senden.
Mit dieser Methode sollte es auch möglich sein andere Programme aus IPS heraus „fern zu steueren“. Habe ich aber noch nicht probiert.
Gruß
Stefan
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : WS_SendSMS.ips.php
Trigger :
Interval :
- um mit dem T-Com Programm "T-Com MMS" und ISDN-Karte SMSe zu versenden.
- VORBEREITUNGEN:
- Download:
- http://www.t-home.de/dwnl/as/mms
- Das Programm "T-Com MMS" muss auf dem IPS Rechner laufen,
es muss bereits konfiguriert und auf dem Rechner aktiv sein.
Die Steuerung erfolgt über WindowsScripting
Windows Scripting informationen zum "SendKeys"-Befehl finden sich hier:
http://www.microsoft.com/technet/scriptcenter/guide
unter dem Pfad:
Script Center Home > Microsoft Windows 2000 Scripting Guide > Scripting Concepts and Technologies for System Administration > WSH Primer > WSH Objects > WshShell Object
*/
// WindowsScripting COM-Object einbinden
$shell = new COM("WScript.Shell");
// Ruft T-COM MMS Programm in den Vordergrund
$res = $shell->appactivate("T-Com MMS - Messaging mit T-ISDN");
// wenn bis hier alles geklappt hat, dann die notwendigen Tastendrücke simulieren
if( $res ){
$shell->SendKeys("{ENTER}%DS"); // Menü->Datei->neue SMS
$shell->SendKeys("01701234567"); // die Telefonnummer des Empfängers
$shell->SendKeys("{TAB}{TAB}"); // weiter zur Textengabe
$shell->SendKeys(date("j M Y - H:i:s")." Dies ist die Nachricht "); // hier der SMS-Text
$shell->SendKeys("{TAB}{TAB}{TAB}"); //weiter zum OK-Button
$shell->SendKeys("{ENTER}"); // und abschicken
}
else
{
echo "FEHLER: T-Com MMS - Messaging mit T-ISDN nicht gefunden!";
}
$shell = null; // COM-Objekt wieder freigeben
?>
Hallo,
als das mit dem fehlendem Sendedatum hat mich auch gestört.
Läßt sich leicht beheben im Script nach „//Mail generieren“
eine weitere Zeile einfügen:
$header.=„Subject: $subject“.$CRLF;
neu: $header.="Date: ".date(„r“).$CRLF;
$header.=$CRLF;
Die für uns relevanten IPS-Variablen regelmäßig aktualisiert werden,
Störmeldungen von Heizungs-Brennern, Ölpumpen etc. vorhanden sind,
Türen ab einer bestimmten Uhrzeit geschlossen sind,
Abnormale Temperaturen im Raum vorliegen (Brandmeldung),
Die Server ein angenehmes Raumklima haben (Klimaanlage),
und was sonst noch anfällt.
Wir steuern das Gateway von SMSkaufen dabei über einen http-Aufruf an.
Das Gateway funktioniert aber auch sehr gut mit einer Ansteuerung per E-Mail. Einach eine Mail an t2@smskaufen.com, im Betreff den Login, PWD, Absendernummer und falls Gewünscht einen Namen rein, und im Body dann Text bis 1.560 Zeichen.
Schnittstellenbeschreibung gibt es leider nur für angemeldete User.
Ende der Werbesendung…
Noch etwas Code:
//***************************************************************************
include ("C:\Programme\IP-SYMCON\scripts\funktion.php");
// ************** Timeout-Überwachung einzelner Variablen **************
$timeout="1800"; //30 min
$watcharr=array("W1-Temp-Kessel-Aussen", "W1_Temp_Pfo_Eing", "W1_Kessel1", "Digi-Poti");
foreach($watcharr as $item)
{
$itemtime = IPS_GetUpdateTime($item);
$itemwert = GetValueFloat($item);
if($itemtime > 0)
{
$ende=$itemtime+$timeout;
//Variable gefunden
if(($ende) < time())
{
SetValueFloat($item,$itemwert); // Neuer Timeout
sms("Variable ".$item." wurde 30 Min nicht mehr aktualisiert","2","0049170xxxx");
sms("Variable ".$item." wurde 30 Min nicht mehr aktualisiert","2","0049172xxx");
echo "Alarm! Variable ".$item." wurde 30 Min nicht mehr aktualisiert
";
echo "";
}
}
}
//********** Temperatur im Server-Raum 25 Grad***************************************
$AlarmTemp2=25;
$watchtemp=array("W1-Temp-KellerServer");
foreach($watchtemp as $item)
{ $temperatur = GetValueFloat($item);
if($temperatur > $AlarmTemp2)
{
// sms("Temperatur-Alarm ".$watchtemp." hat ".$temperatur." Grad.","2","0049172xxxx");
echo "Alarm! Variable ".$item." hat ".$temperatur." Grad.
";
}
}
//********** Temperatur Alarm über 35 Grad ************************************
$AlarmTemp2=35;
$watchtemp=array("W1_Temp_Pfo_Hint","W1_Temp_Pfo_Eing",
"W1_Temp_Caffet_Relaisbox");
foreach($watchtemp as $item)
{
$temperatur = GetValueFloat($item);
if($temperatur > $AlarmTemp2)
{
sms("Temperatur-Alarm ".$item." hat ".$temperatur." Grad.","2","0049172xxxxx");
echo "Alarm! Variable ".$item." hat ".$temperatur." Grad.
";
}
}
Hallo Bernd,
oder du schreibst Einen Script, und die EMail-Adresse in dem Script liest du aus einer Variable aus die du anlegst.
Dann kannst du den Script zweimal aufrufen, wobei du vor jedem Aufruf einfach die Variable änderst.
Oder du schreibst einen Script der eine Funktion beinhaltet die als Parameter die EMail Adresse hat. (Die Funktion ist natürlich der Mail-versende Code).
Und dann includest du den Script in deinem Script der zuständig ist fürs versenden, und rufst dann die Funktion zweimal hintereinander mit der entsprechenden Email auf.
Ich habs jetzt selber so noch nicht probiert, aber ich würds so machen (versuchen :rolleyes:).