wenn Du etwas mit SetValueString(…) in eine Variable hineinschreibst, dann kannst Du es nur mit GetValueString(…) wieder herausholen.
Nur einfach eine gleichnamige $-Variable anzulegen weist ihr noch keinen Wert zu.
Die Variablen $SMSWitch_Content und $SMSWitch_Sender sind in Deinem Skript folglich leer!
wenn Du etwas mit SetValueString(…) in eine Variable hineinschreibst, dann kannst Du es nur mit GetValueString(…) wieder herausholen.
Nur einfach eine gleichnamige $-Variable anzulegen weist ihr noch keinen Wert zu.
Die Variablen $SMSWitch_Content und $SMSWitch_Sender sind in Deinem Skript folglich leer!
Aber du hast mir SUPER geholfen!! Vielen Dank! Mein Script Funktioniert jetzt!! Und damit es auch andere die es vielleicht machen wollen so ist es richtig:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : SMS_Senden.ips.php
Trigger :
Interval :
*/
// Das hier erstmal nur zum Test!!!
SetValueString("SMSNummer", "+4917329xxxxx");
SetValueString("SMSInfo", "Hauskontrolle: Alarm wurde ausgelöst! Einbruch Tuer-Wintergarten.");
// Testzeilen ende
$SMSWitch_Sender = GetValueString("SMSNummer") ;
$SMSWitch_Content = GetValueString("SMSInfo");
if ($IPS_SENDER == "Execute")
{
$Text = $SMSWitch_Content." Dein Server";
$Erfolg = SMSWitch_SendMessage(10474, $SMSWitch_Sender, $Text);
if ($Erfolg)
SetValueString("SMSStatus", "SMS versendet");
else
SetValueString("SMSStatus", "Senden fehlgeschlagen");
}
?>
DANKE an allen die mir hier wieder super geholfen haben!! So langsam verstehe ich die Programmierung! Ich befürchte aber ich gehe euch noch öfters auf den Geist!
Dein Skript funktioniert so, wie es jetzt ist, nur durch Starten von Hand (über den Execute-Button). Das ist bestimmt nicht das, was Du Dir vorgestellt hast!
Wodurch soll den Dein Skript normalerweise getriggert (gestartet) werden?
Irgendeine konkrete Vorstellung musst Du doch gehabt haben.
Bitte lies hierzu auch die Dokumentation zum Thema Variablen und Events.
Die Vorstellung ist, das ich verschieden SMS vorgebe! Wenn jetzt zum Beispiel das Fenster geöffnet wir, ohne vorher den Alarm abzustellen, soll er eine bestimmte SMS versenden! Also möchte ich das Script mit einer Variable triggern oder aus einem andern Script aus ausführen, allerdings weiß ich noch nicht wie!
IPS_RunScript(„SMS_Senden“); Das geht nicht, keine Fehler es geht einfach nicht…
Ist auch völlig logisch - Wenn du dir die Anleitung durchgelesen hättest. ;).
mit dieser zeile
if ($IPS_SENDER == "Execute")
fragst du ob das Script ausgeführt wurde weil der execute Button geklickt wurde. wurde er aber nicht. Das Script verhält sich so wie es soll. Es tut nichts.
Die Variable $SMSWitch_Content beinhaltet den Text einer eingehenden SMS und existiert nur, wenn das SMSWitch-Modul selbst das Script aufgerufen hat. Darum prüfe ich mit
if ($IPS_SENDER == "SMSWitch")
ob es so ist, um sicherzustellen, dass $SMSWitch_Content auch wirklich existiert. Es wurde aber nicht durch das SMSWitch aufgerufen. Das Script verhält sich so wie es soll. Es tut nichts.
Wenn du das Script aber für einen völlig anderen Zweck einsetzen willst, so musst du das Script umbauen, weil es ja nie durch den Execute-Button oder das SMSWitch selbst aufgerufen wird.
Für deinen Fall würde ich vorschlagen so ein Script zu verwenden:
$Nummer = '+4917329xxxxx';
$Text = 'Hauskontrolle: Alarm wurde ausgelöst! Einbruch Tuer-Wintergarten. Dein Server';
$Erfolg = SMSWitch_SendMessage(10474, $Nummer , $Text);
if ($Erfolg)
SetValueString("SMSStatus", "SMS versendet");
else
SetValueString("SMSStatus", "Senden fehlgeschlagen");
Jetzt musst du noch eine IPS-Variable vom Typ String anlegen und ihr den Namen „SMSStatus“ geben. Die anderen sind dann überflüssig. In „SMSStatus“ steht dann ob die SMS erfolgreich gesendet wurde. Wenn dich das nicht interessiert lass es weg:
$Nummer = '+4917329xxxxx';
$Text = 'Hauskontrolle: Alarm wurde ausgelöst! Einbruch Tuer-Wintergarten. Dein Server';
SMSWitch_SendMessage(10474, $Nummer , $Text);
Dann brauchst du sie auch nicht anlegen. Thats all
Für dein Problem mit dem Zuweisen von Text in Variablen könntest du dich mit der Einführung in Scrip-Programmierungin Tonis kleinem Programmierhandbuch befassen.
Ein Computer tut niemals das was du willst, sondern das was du ihm sagst!