Ips_sender ?!?

mir scheint, als würde in der Beta diese Code nicht mehr Funktionieren

if ($IPS_SENDER == 'SMSWitch')

Ist es jetzt so wie es früher schon einmal war, dass amn das wieder manuell setzen muss?

Toni

Nee, Unfug… geht…

der Fehler liegt im „HandlePHPEvent“ - gibts da Änderungen in der Beta?

Update: Es liegt offenbar am Script selbst…

Wo könnte das Problem in diesem Script liegen?


   if ($IPS_SENDER == 'SMSWitch')
   {
      $SMSText = $SMSWitch_Content.' am '.$SMSDate.' um '.$SMSTime.' verarbeitet';
      IPS_Execute('Showmessage.exe', $SMSWitch_Sender, False, False); // Showmessage.exe wirft eine Message auf dem Bildschirm aus
      IPS_Execute('Showmessage.exe', $SMSText, False, False);
      SMSWitch_SendMessage(28448, $SMSWitch_Sender, $SMSText);
      IPS_Execute('Showmessage.exe', 'Done!', False, False);
   }

Was ich weiss:

  • Die Bedingung wird erfüllt
  • in $SMSWitch_Sender steht meine Telefonnummer
  • in $SMSText steht der text wie man ihn vermuten würde
  • SMS kommt NICHT an
  • Das script läuft ohne Fehler durch
  • „SMSWitch_SendMessage(28448, ‚Meine Nummer‘, ‚Mein text‘);“ funktioniert

noch ein bissel D-Code:


  TIPSSMSWitch = class(TIPSModuleObject, IIPSSMSWitch)
  private
    //--- Basic Structures
    FVariables: TIPSVariables;
    FParams: TIPSScriptParams;
  [..]

procedure TIPSSMSWitch.HandlePHPEvent(FunctionName: string;
  Parameters: TIPSPHPParameters;
  var ReturnValue: TIPSPHPParameter;
  ThisPtr: pointer;
  TSRMLS_DC: pointer);
var
	PDU: TPDU;
  Reslt: Boolean;
begin
  if SameText(FunctionName, 'SMSWitch_SendMessage') then
  begin
    PDU:=FPDU.encodePDU(FSettings.SMSC, Parameters[0].VarString, false, false, false, Parameters[1].VarString);
    if FMirkModem.SendSMS(PDU.length, PDU.PDU) = mrOkay then
      Reslt:=true
    else
    	Reslt:=false;
    ReturnValue.VarBoolean:=Reslt;
  end;
end;


procedure TIPSSMSWitch.GetMessages();
var
  [..]
  State: TModemResult;
  Command, ShortCut: string;
  Script, Filename: string;
  Prefix: string;
begin
  [..]
          SetLength(FVariables, 2);

          FVariables[0].VarName:= 'SMSWitch_Sender';
          FVariables[0].VarString:=Content.PhoneNo;
          FVariables[0].VarType:=vtString;
          FVariables[0].VarUpdated:=Now;
          FVariables[0].VarInfo:= '';

          FVariables[1].VarName:= 'SMSWitch_Content';
          FVariables[1].VarString:=Command;
          FVariables[1].VarType:=vtString;
          FVariables[1].VarUpdated:=Now;
          FVariables[1].VarInfo:= '';
          
          [..]
              
              // Wenn Script vorhanden
              if not FAILED(vEventScripter.GetScriptFilename(Script, Filename)) then
              begin
                InitParams(FParams, FVariables);
                vEventScripter.ExecuteScript(Script, 'SMSWitch', false, @FParams, nil)
              end
              else if FSettings.Logging then // Command gültig, aber Script nicht gefunden
              begin
                vKernel.LogMessage(KL_MESSAGE, 'SMSWitch', 'Script not found: ' + Script);
              end;
          [..]
end;