Fehler im Workflow Modul

Hallöchen,
ich habe das Problem, sobald ich dem „UND“ Gatter einen weiteren Eingang verpasse und Verknüpfe, dann erhalte ich die Fehlermeldung: „Not all Workflow Entities could be evaluated“.
Ich habe an den Eingang auch schon eine Constante „true“ eingehangen, aber der Fehler bleibt weiterhin bestehen.
Auch habe ich 2 2-fach „UND“ hintereinander geschaltet, das hat den selben Effekt.
Irgendjemand eine Idee?
Als Version setzte ich die 3.1 BETA ein.

Hallo,

bei mir ist das auch so, ich habe das Workflow gespeichert und dann geschlossen. Beim erneute öffnen ist der Hinweis dann nicht mehr da.

Leider in diesem Fall nicht.
Ich kann dein Fehlverhalten aber auch bestätigen. Manchmal hat das geholfen.

Nun habe ich festgestellt, dass das Workflow-Script auch nicht mehr verändert wird, wenn man änderungen vornimmt. In der Mediadatei werden die JSON Daten noch gepflegt, aber die Script-Datei selbst nicht.

Das bedeutet, wenn man IPSView dazu zwingen könnte, beide Dateien noch mal neu zu schreiben, dann könnten auch die Fehler weg sein.

Das könnte Absicht sein, weil die Daten des Workflow bestimmt nur im RAM liegen.
Die Datei wird dann erst beim Beenden des Dienstes gesichert.
Michael

Hallo,

nein leider nicht.:eek: Ich habe das Workflow gelöscht und noch einmal neu aufgesetzt und dann ging es.

Bitte einen Scrennshot des kompletten Worklfows posten, ich stell das dann bei mir nach und werde nach einer Lösung suchen :slight_smile:

Zusätzlich kannst Du mir auch gerne die Workflow Media Datei senden…

Hallo Andreas,

jetzt kann ich Garnichts mehr speichern.:eek::eek::eek: Hier das Workflow und so sieht das Skript aus(das ist leer).
Was mach ich hier Falsch???

@RSRS

Das sieht so danach aus, als ob es überhaupt noch nie geschrieben wurde - hast Du da was manuell geändert (kopiert, verschoben, …)?

Kannst Du mal in den „Workflow Einstellungen“ schauen, ob dort die korrekte Skript ID eingetragen ist ?

Hallo Andreas,

ich habe mehrere dinge ausprobiert, aber am Skript selbst habe ich nichts geändert(so wie es ja auch im Skript steht=nichts ändern). Ich habe das Skript einmal erstellt und das läuft, dann habe ich die Module markiert und in ein neues Workflow eingefügt und dann gespeichert und da war dann dieses Ergebnis. Dann habe ich das nicht Funktionierende Skript gelöscht und ein neues angelegt und die Module einzeln hinzugefügt und wieder das selbe = nichts drin.

Ich habe jetzt das Studio geschlossen und erneut gestartet und dann erscheint im Skript das hier:

Die Skript ID stimmt

Ich glaub das Problem wird durch den Kommentar verursacht - wirf das Ding mal raus und versuche es erneut zu speichern ?

Ja, das ist es. Jetzt geht’s.

Vielen Dank

OK, werde ich fixen :slight_smile:

@Muffeljupp

hast Du ebenfalls einen Kommentar drinnen, bzw. kannst Du bitte mal einen kompletten Screenshot Deines Workflows posten?

Hallo Andreas,

eine Frage habe ich noch. Kann ich die Konstante für Stunde/Minute für die Ausschaltzeit auch irgendwie aus der View veränderbar machen???

ja klar - ersetze die Konstanten doch einfach durch Variablen;)

Fix für das Problem mit dem Kommentar ist nun online.

@Muffeljupp
Konnte Dein Problem allerdings noch nicht nachstellen, ich vermute es wird durch ein Module ausgelöst, das am Screenshot nicht sichtbar ist. Falls das Problem nach dem nächsten Update noch immer besteht, bitte einen Screenshot des kompletten Workflows posten.

Guten Abend Zusammen,
wir haben das selbe Problem: Workflow läuft top durch, jedoch haben wir eine Fehlermeldung.

Was machen wir denn falsch?

Das ist das Skript dazu:

<?php

/* =====================================================================================================
 * 
 * IPSWorkflow Script
 * 
 * Dieses Skript wurde von einem Workflow des IPSStudio erzeugt, bitte nehmen Sie keine Änderungen
 * an dem Skript vor, da dieses beim nächsten Speichervorgang ansonsten wieder überschrieben werden.
 * 
 * Generiert
 *    at: 04.02.2019 21:37:43
 *    von: IPSStudio
 *    ID: 39847
 * 
 * Benutzte Objekte:
 *    57411 - Allgemein.Szenen.Haus verlassen
 *    13662 - Allgemein.Gruppierungen.Alle_Rolläden_0%
 *    24390 - Allgemein.Szenen.Daheim ankommen
 * 
 * Generierte Ereignisse:
 *    58396 - Workflows.Workflow_Anwesenheitsstatus.41566 Event
 * 
 * ===================================================================================================== */

   $executionID = round(microtime(true)*1000)-(IPS_GetKernelStartTime()*1000);
   SendDebug($_IPS['SELF'], 'S||||'.$executionID, '', 0);

   $M1 = new IPSEntityVariable($_IPS, 41566);
   $S7 = new IPSEntityScriptCall($_IPS, 13662,0,'');
   $S2 = new IPSEntityScriptCall($_IPS, 24390,0,'');
   $M2 = new IPSEntityModuleIf($_IPS);
   $S1 = new IPSEntityScriptCall($_IPS, 57411,0,'');

   if ($M1->Evaluate()) {
      SendDebug($_IPS['SELF'], 'M1|GetValue|M2|SetCondition|'.$executionID,$M1->GetValue(),0);
      $M2->SetCondition($M1->GetValue());
   }
   if ($M2->Evaluate()===true) {
      SendDebug($_IPS['SELF'], 'M2|GetTrue|S7|SetValue|'.$executionID,$M2->GetTrue(),0);
      $S7->SetValue($M2->GetTrue());
      SendDebug($_IPS['SELF'], 'M2|GetTrue|S2|SetValue|'.$executionID,$M2->GetTrue(),0);
      $S2->SetValue($M2->GetTrue());
   } else if ($M2->Evaluate()===false) {
      SendDebug($_IPS['SELF'], 'M2|GetFalse|S1|SetValue|'.$executionID,$M2->GetFalse(),0);
      $S1->SetValue($M2->GetFalse());
   } else {}
   $S7->Evaluate();
   $S2->Evaluate();
   $S1->Evaluate();


   /* -----------------------------------------------------------------------*/
   function SendDebug($id, $message, $data, $format) {
      if (is_numeric($data)) {
         $data = (string)round($data, 2);
      }
      IPS_SendDebug($id, $message, $data, $format);
   }

   /* -----------------------------------------------------------------------*/
   function GetTypeConvertedValue($variableID, $value) {
     $variableType = IPS_GetVariable($variableID)['VariableType'];
      if ($variableType == 0) return (bool)$value;
      else if ($variableType == 1) return (int)$value;
      else if ($variableType == 2) return (float)$value;
      else return $value;
   }

   /* -----------------------------------------------------------------------*/
	class IPSEntityVariable {
		private $ips;
		private $id;
		private $value;

		public function __construct($ips, $id) {
			$this->ips = $ips;
			$this->id = $id;
  		}

  		public function SetValue($value) {
  		   SetValue($this->id, GetTypeConvertedValue($this->id, $value));
  		}

  		public function GetValue() {
  		   return GetValue($this->id);
  		}

  		public function Evaluate() {
  		   return true;
  		}
	}

   /* -----------------------------------------------------------------------*/
	class IPSEntityScriptCall {
		private $ips;
		private $scriptID;
		private $variableID;
		private $sender;
		private $value = '';
		private $input = false;

		public function __construct($ips, $scriptID, $variableID, $sender) {
			$this->ips         = $ips;
			$this->scriptID    = $scriptID;
			$this->variableID  = $variableID;
			$this->sender      = $sender;
  		}

  		public function SetValue($value) {
  		   $this->value = $value;
  		   $this->input = true;
  		}

  		public function Evaluate() {
  		   if ($this->input) {
  		      $params                 = array();
				$params['SENDER']       = $this->sender;
				$params['VARIABLE']     = $this->variableID;
				$params['VALUE']        = $this->value;
  		      IPS_RunScriptWaitEx($this->scriptID, $params);
  		   }
  		   return $this->input;
  		}
	}

   /* -----------------------------------------------------------------------*/
	class IPSEntityModuleIf {
		private $ips;
		private $value = false;
		private $input = false;

		public function __construct($ips) {
			$this->ips = $ips;
  		}

  		public function SetCondition($value) {
  		   $this->value = $value;
  		   $this->input = true;
  		}

  		public function GetTrue() {
 		   return $this->value==true;
  		}

  		public function GetFalse() {
 		   return $this->value==false;
  		}

  		public function Evaluate() {
  		   return $this->input ? $this->value : null;
  		}
	}


   SendDebug($_IPS['SELF'], 'F||||'.$executionID, '', 0);

?>

Kommt die Fehlermeldung auch wenn Du das Workflow Skript manuell ausführst?