Die Endlosschleife ist zwar beseitigt, das Problem bleibt aber…
Ich möchte nämlich bei einem Alarm zwei Emails verschicken (an mein Postfach und an Clackatell). Dazu werden die Scripte SMS_Clickatell und Email_lokal aufgerufen, die wiederum die Class SMTP benutzen.
$alarmarr = Array("Rauchmelder_Kinderzimmer" => GetValueBoolean("Rauchmelder_Kinderzimmer.Status"),"Rauchmelder_Serverraum" => GetValueBoolean("Rauchmelder_Serverraum.Status"));
$SMS_Alarm = GetValueBoolean("SMS_Alarm");
foreach($alarmarr as $name => $wert) {
if (($wert == True)&&($SMS_Alarm == false)) {
SetValueString("SMS_Meldetext", "Alarm!!! Der ".$name." meldet Feuer!!!");
IPS_RunScript("SMS_Clickatell");
IPS_RunScript("Email_lokal");
SetValueBoolean("SMS_Alarm",true);
echo "Alarm!!! Der ".$name." meldet Feuer!!!";
}
}
Das wird wohl mit die ankommende version -der die jetzt in Beta lauft- ein grosseres problem glaube ich.
Die 2x angerufene scripte brauchen die gleiche php-‚bausteine‘ (also hier SMTP oder IMAP) und deshalb glaube ich das die init der php-‚bausteine‘ nicht simultan laufen können.
ich wurde mal vorschlagen eine weile zu warten zwischen beide runscript’s.
Etwas durch IPS_SLEEP(10); -> oder wie ging dieser commando wieder?
wenn dies nicht klappt, das wird es schwindlich weil dein script intern buffern soll - also erste nachricht an die erste adresse, und dann nur die 2e…
habe heute meinen Wassermelder bekommen und möchte auch gerne die Funktion, eine SMS bei Alarm aufs Handy zu schicken, realisieren.
Das Script kann ich meinen Bedürfnissen anpassen, doch leider ist in diesem Post die Sache mit den Voreinstellungen ein wenig untergegangen.
Was muss ich bei Clickatell beauftragen?
Was muss ich außer dem Script in IPS einbinden, um eine E-Mail an Clickatell zu senden, damit die ne SMS draus machen. Ich sehe zum Beispiel ein class.smtp.php. das ist standardmäßig nicht implementiert. Da fangen schon meine Probleme an. Ist das das Einzige, was ich benötige?
Vielleicht könnte jemand, bei dem dieses Verfahren läuft, ne kleine Anleitung bereitstellen, damit auch andere Community-Mitglieder davon profitieren können.
Das Post ist leider so aufgebaut… ich mach dies… ne mach es anders…
… aber nicht, wie mache ich es anfangs richtig Step by step.
www.clickatell.com ein account machen, creditkarte bereithalten (z.b. american express), credits laden und gut.
ist eigentlich supereinfach damit was zu realsieren - habe damit z.b. auf webseiten sms dienste schon realisiert. bei interesse habe ich da noch ein beispiel (siehe unten).
kann man eigentlich bei dennen immernoch einen wunschabsender angeben statt der telefonnumer (z.b. statt beim empfang die telefonnummer anzuzeigen wird www.domain.de angezeigt)? früher ging das mal.
danke für die prompte Antwort aber eine Frage hab ich noch: was hat das mit der SMTP class aus dem Script auf sich? Runterladen und in den Ordner \scripts verbannen?
Mal nebenbei, Du wolltest mir noch ein Beispiel-php für den PDA schicken.
So, habe Script angepasst, einen Account bei Clickatell erstellt, die SMTP class heruntergeladen und in den Ordner \scripts kopiert.
Ich habe der Variablen eine Text zugewiesen und dann das Script mal gestartet.
Es kommt folgende Fehlermeldung:
<br />
<b>Warning</b>: main(scripts/class.smtp.php) [<a href=‚function.main‘>function.main</a>]: failed to open stream: No such file or directory in <b>C:\Programme\IP-Symcon\scripts.currentscript</b> on line <b>34</b><br />
<br />
<b>Warning</b>: main() [<a href=‚function.include‘>function.include</a>]: Failed opening ‚scripts/class.smtp.php‘ for inclusion (include_path=’.;C:\php5\pear’) in <b>C:\Programme\IP-Symcon\scripts.currentscript</b> on line <b>34</b><br />
<br />
<b>Fatal error</b>: Class ‚SMTP‘ not found in <b>C:\Programme\IP-Symcon\scripts.currentscript</b> on line <b>36</b><br />
Ich schreibe ein IPS-Modul, mit dem du direkt über ein angeschlossenes altes, ausrangiertes Handy SMS senden und empfangen kannst. Die empfangenen SMS können dann direkt Scripte triggern.
BTW:
Jemand interessiert dafür für mich als Beta-Tester zu arbeiten?
Momentan arbeite ich mit nem richtigen GSM-Modem (siemens M20T) . Da genügt ein Com-Port.
Das Handy muss Hayes Befehlssatz unterstützen und du brauchst ein Datenkabel, dass du dein Handy über nen Comport anschließen kannst. Ggf. genügt auch ein virtueller Comport der Handysoftware. Dann würde u.U. eine Verbindung auch über USB oder Bluetooth funken… Muss aber erst getestet werden.
In wieweit das so geht will ich erst testen. Es scheint aber Probleme mit einigen Simkarten zu geben…
habe einen Fehler gefunden, nach dem IPS-Update musste der include-Befehl geändert werden. Habe ihn folgendermaßen abgeändert:
include(IPS_GetScriptFile(„class.smtp“));
Doch es bleibt 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>34</b><br />
<br />
<b>Fatal error</b>: Class ‚SMTP‘ not found in <b>C:\Programme\IP-Symcon\scripts.currentscript</b> on line <b>36</b><br />
[b]Installation[/b]
Copy class.phpmailer.php into your php.ini include_path.
If you are using the SMTP mailer then place class.smtp.php in your path as well.
If you do not have control of the include directory and you are running PHP 4.0 or higher you can use this function to set it to the correct directory:
ini_set("include_path", ".:/path/to/phpmailer/dir");
Or this:
$mail->PluginDir = "/path/to/phpmailer/dir";
Also setze entweder den include_path in der php.ini oder im Script mit ini_set zu den Pfad, wo Du die Scripte abgelegt hast.
<br />
<b>Warning</b>: main() [<a href=‚function.include‘>function.include</a>]: Failed opening ‚‘ for inclusion (include_path=‚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 />