Stringvariable auslesen und andere Variable beschreiben

Hallo,

ich habe folgendes Problem:
Ich bekomme über MQTT in einer StringVariable 5 Werte nacheinander geschickt. Das geschieht sehr schnell, und mein script schaffte es nicht diese 5 nachrichten in andere Variablen zu schreiben. Wie kann ich das Problem lösen? Wenn ich im Archive der StringVariable gucke, dann sehe ich alle werte. Ich habe mir gedacht eventuell diese Werte aus dem Archive holen, oder gibt es da einen anderen Trick?

Danke und Grüße

dark99

evtl mit nem ereignis script auf änderung der string variable?

Zeig doch mal dein Script und die Werte die ankommen.

Grüße,
Kai

mein Script wird schon durch Änderung der Variable jedes mal ausgelöst. Jedoch gibt es vermutlich timing Probleme.

Die Nachrichten der String Variable ($status_mqtt) sieht wie folgt aus:
T[1]:21.1
T[2]:21.3
T[3]:22.7
T[4]:23.5
T[5]:60.1

Diese Nachrichten kommt sehr schnell hintereinander:
Mein script soll die Nachricht in T[1] und den Wert 21.1 verlegen und in die entsprechende Variable schreiben.


$vorlauf_fbh=17815;
$ruecklauf_fbh=29683;
$vorlauf_hk=21534;
$ruecklauf_hk=49011;
$solarspeicher=48226;
$status_mqtt=GetValue(21756);

$temp_wert = explode(":", $status_mqtt);
$temp_sens_nr=$temp_wert[0];
$temp_wert=$temp_wert[1];

if ($temp_sens_nr == 'T[1]')
  {
   SetValue($vorlauf_fbh,$temp_wert);   
  }
if ($temp_sens_nr == 'T[2]')
  {
   SetValue($ruecklauf_fbh,$temp_wert);   
  }
if ($temp_sens_nr == 'T[3]')
  {
   SetValue($vorlauf_hk,$temp_wert);   
  }
if ($temp_sens_nr == 'T[4]')
  {
   SetValue($ruecklauf_hk,$temp_wert);   
  }
if ($temp_sens_nr == 'T[5]')
  {
   SetValue($solarspeicher,$temp_wert);   
  }

Das waere wahrscheinlich besser :

$status_mqtt = $_IPS['VALUE'];

als

$status_mqtt=GetValue(21756);

Funktionier, vielen Dank. Was passier eigentlich genau mit dem Befehl $_IPS[‚VALUE‘] im vergleich mit GetValue?

Gruß

Dark99

Wenn der String sich aendert wird ja das Script gestartet.
In $_IPS[‚VALUE‘] steht der aktuelle Wert der das Script ausgeloest hat.
Wenn du im Script mit

$status_mqtt=GetValue(21756);

den Wert ausliest koennte er sich ja schon geaendert haben.